Part Number Hot Search : 
2SK1104 204C08 2RI100G ADP3808 1N3349RB VRE306K 83N03LT C165H
Product Description
Full Text Search
 

To Download PLI9080 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  plx technology, inc., 390 potrero ave., sunnyvale, ca, 94086, phone: 408-774-9060, fax: 408-774-2169, web: www.plxtech.com. plx retains the right to make changes to these specifications at any time, without notice. products may have minor variations to this specification known as errata. plx assumes no liability whatsoever, including infringement of any patent or copyright, for sale and use of plx products. ? ? plx technology, inc., 1997. pci 9080 data sheet version 0.93 february 28, 1997 website/ftp site: http://www.plxtech.com email: apps@plxtech.com phone: 408 -774 -9060 fax: 408 -774 -1269
table of contents ? ? plx technology, inc., 1997 page ii version 0.93 table of contents 1. general description ................................ ................................ ................................ ................................ .......... 1 1.1 applications for the pci 9080 ................................ ................................ ................................ ...................... 2 1.1.1 pci adapter cards ................................ ................................ ................................ ................................ ........... 2 1.1.2 embedded systems ................................ ................................ ................................ ................................ ......... 2 1.2 major features ................................ ................................ ................................ ................................ ............... 3 1.3 compatibility of pci 9080 with pci 9060, 9060es, and 9060sd ................................ ................................ 4 1.3.1 pin compatibility ................................ ................................ ................................ ................................ ............... 4 1.3.2 register compatibility ................................ ................................ ................................ ................................ ....... 4 1.4 comparison of pci 9060, pci 9060es, pci 9060sd, and pci 9080 ................................ .............................. 5 2. bus operation ................................ ................................ ................................ ................................ ....................... 6 2.1 pci bus cycles ................................ ................................ ................................ ................................ .................. 6 2.1.1 pci target command codes ................................ ................................ ................................ ............................ 6 2.1.2 pci master command codes ................................ ................................ ................................ ........................... 6 2.1.2.1 dma master command codes ................................ ................................ ................................ ................................ .... 6 2.1.2.2 direct local to pci command codes ................................ ................................ ................................ .......................... 6 2.2 local bus cycles ................................ ................................ ................................ ................................ ............ 7 2.2.1 local bus direct master ................................ ................................ ................................ ................................ .... 7 2.2.2 local bus direct slave ................................ ................................ ................................ ................................ ...... 7 2.2.2.1 ready/wait state control ................................ ................................ ................................ ................................ ........... 7 2.2.2.2 burst mode and continuous burst mode (bterm ?burst terminate? mode) ................................ ................................ . 7 2.2.2.2.1 burst mode ................................ ................................ ................................ ................................ .......................... 7 2.2.2.2.2 continuous burst mode (bterm# ?burst terminate? mode) ................................ ................................ ................. 7 2.2.2.2.3 partial lword accesses ................................ ................................ ................................ ................................ ........ 7 2.2.2.3 recovery states ................................ ................................ ................................ ................................ .......................... 8 2.2.2.4 local bus read accesses ................................ ................................ ................................ ................................ ........... 8 2.2.2.5 local bus write accesses ................................ ................................ ................................ ................................ ........... 8 2.2.2.6 direct slave write accesses?8 - and 16-bit buses ................................ ................................ ................................ ..... 8 2.2.2.7 local bus data parity ................................ ................................ ................................ ................................ ................. 8 2.2.2.8 local bus little/big endian ................................ ................................ ................................ ................................ ......... 8 2.2.2.8.1 32 bit local bus?big endian mode ................................ ................................ ................................ ..................... 8 2.2.2.8.2 16 bit local bus?big endian mode ................................ ................................ ................................ ..................... 8 2.2.2.8.3 8 bit local bus?big endian mode ................................ ................................ ................................ ....................... 9
table of contents ? ? plx technology, inc., 1997 page iii version 0.93 3. functional description ................................ ................................ ................................ ................................ ... 10 3.1 reset ................................ ................................ ................................ ................................ ................................ . 10 3.1.1 pci bus input rst# ................................ ................................ ................................ ................................ ....... 10 3.1.2 local bus input lreseti# ................................ ................................ ................................ ............................. 10 3.1.3 local bus output lreseto# ................................ ................................ ................................ ......................... 10 3.1.4 software reset ................................ ................................ ................................ ................................ ............... 10 3.2 pci 9080 initialization ................................ ................................ ................................ ................................ .... 10 3.2.1 eeprom initialization ................................ ................................ ................................ ................................ ..... 10 3.2.2 local initialization ................................ ................................ ................................ ................................ ........... 10 3.3 eeprom ................................ ................................ ................................ ................................ .............................. 10 3.3.1 short eeprom load ................................ ................................ ................................ ................................ ..... 11 3.3.2 long eeprom load ................................ ................................ ................................ ................................ ...... 11 3.3.3 extra long eeprom load ................................ ................................ ................................ ............................. 13 3.3.4 recommended eeproms ................................ ................................ ................................ ............................. 13 3.4 internal register access ................................ ................................ ................................ ......................... 13 3.4.1 pci bus access to internal registers ................................ ................................ ................................ ............. 13 3.4.2 local bus access to internal registers ................................ ................................ ................................ ........... 14 3.5 direct data transfer modes ................................ ................................ ................................ .................... 14 3.5.1 direct master operation (local master to pci target) ................................ ................................ ..................... 15 3.5.1.1 decode ................................ ................................ ................................ ................................ ................................ ..... 15 3.5.1.2 fifos ................................ ................................ ................................ ................................ ................................ ....... 15 3.5.1.3 memory access ................................ ................................ ................................ ................................ ........................ 15 3.5.1.4 io/cfg access ................................ ................................ ................................ ................................ ......................... 15 3.5.1.5 i/o ................................ ................................ ................................ ................................ ................................ ............ 16 3.5.1.6 cfg (pci configuration type 0 or type 1 cycles) ................................ ................................ ................................ .... 16 3.5.1.7 direct bus master lock ................................ ................................ ................................ ................................ ............. 16 3.5.1.8 master/target abort ................................ ................................ ................................ ................................ .................. 16 3.5.1.9 write and invalidate ................................ ................................ ................................ ................................ .................. 16 3.5.2 direct slave operation (pci master to local bus access) ................................ ................................ .............. 18 3.5.2.1 pci to local address mapping ................................ ................................ ................................ ................................ .. 18 3.5.2.1.1 byte enables ................................ ................................ ................................ ................................ ...................... 18 3.5.2.1.2 local bus initialization software ................................ ................................ ................................ ......................... 19 3.5.2.1.3 pci initialization software ................................ ................................ ................................ ................................ .. 19 3.5.2.2 deadlock and breqo ................................ ................................ ................................ ................................ ............... 21 3.5.2.2.1 backoff ................................ ................................ ................................ ................................ .............................. 21 3.5.2.2.2 software/hardware solution for systems without backoff capability ................................ ................................ ... 22 3.5.2.2.3 software solutions to deadlock ................................ ................................ ................................ .......................... 22
table of contents ? ? plx technology, inc., 1997 page iv version 0.93 3.5.2.3 direct slave lock ................................ ................................ ................................ ................................ ...................... 22 3.5.3 direct slave priority ................................ ................................ ................................ ................................ ........ 22 3.6 dma operation ................................ ................................ ................................ ................................ ................ 23 3.6.1 non-chaining mode dma ................................ ................................ ................................ ............................... 23 3.6.2 chaining mode dma ................................ ................................ ................................ ................................ ....... 24 3.6.3 dma data transfers ................................ ................................ ................................ ................................ ....... 25 3.6.3.1 local to pci bus dma transfer ................................ ................................ ................................ ................................ 25 3.6.3.2 pci to local bus dma transfer ................................ ................................ ................................ ................................ 26 3.6.3.3 unaligned transfers ................................ ................................ ................................ ................................ .................. 26 3.6.4 demand mode dma ................................ ................................ ................................ ................................ ....... 26 3.6.5 dma priority ................................ ................................ ................................ ................................ ................... 27 3.6.6 dma arbitration ................................ ................................ ................................ ................................ .............. 27 3.6.6.1 end of transfer (eot0# or eot1#) input ................................ ................................ ................................ .................. 27 3.6.6.2 local latency and pause timers ................................ ................................ ................................ .............................. 27 3.7 breq input ................................ ................................ ................................ ................................ ........................ 27 3.8 doorbell registers ................................ ................................ ................................ ................................ ..... 27 3.9 mailbox registers ................................ ................................ ................................ ................................ ........ 27 3.10 interrupts ................................ ................................ ................................ ................................ ..................... 28 3.10.1 pci interrupts (inta#) ................................ ................................ ................................ ................................ .. 28 3.10.1.1 local interrupt input ................................ ................................ ................................ ................................ ................ 28 3.10.1.2 master/target abort interrupt ................................ ................................ ................................ ................................ .. 28 3.10.2 local interrupts (linto#) ................................ ................................ ................................ .............................. 29 3.10.2.1 local to pci doorbell interrupt ................................ ................................ ................................ ................................ 29 3.10.2.2 pci to local doorbell interrupt ................................ ................................ ................................ ................................ 29 3.10.2.3 built in self test interrupt (bist) ................................ ................................ ................................ ............................. 29 3.10.2.4 dma channel 0/1 interrupts ................................ ................................ ................................ ................................ .... 29 3.10.3 pci serr# (pci nmi) ................................ ................................ ................................ ................................ .. 30 3.10.4 local lserr# (local nmi) ................................ ................................ ................................ ........................... 30 3.11 i 2 0 compatible message unit ................................ ................................ ................................ .................... 30 3.11.1 inbound messages ................................ ................................ ................................ ................................ ....... 30 3.11.2 outbound messages ................................ ................................ ................................ ................................ ..... 31 3.11.3 i 2 o pointer management ................................ ................................ ................................ .............................. 31 3.11.4 inbound free list fifo ................................ ................................ ................................ ................................ . 32 3.11.5 inbound post list fifo ................................ ................................ ................................ ................................ . 34 3.11.6 outbound post list fifo ................................ ................................ ................................ .............................. 34 3.11.7 outbound free list fifo ................................ ................................ ................................ .............................. 34
table of contents ? ? plx technology, inc., 1997 page v version 0.93 4. registers ................................ ................................ ................................ ................................ .............................. 36 4.1 new register definitions summary ................................ ................................ ................................ ........ 36 4.1.1 register differences between pci 9080 and pci 9060, pci 9060es, and pci 9060sd ................................ .. 37 4.2 register address mapping ................................ ................................ ................................ ........................ 43 4.2.1 pci configuration registers ................................ ................................ ................................ ............................ 43 4.2.2 local configuration registers ................................ ................................ ................................ ......................... 44 4.2.3 runtime registers ................................ ................................ ................................ ................................ .......... 45 4.2.4 dma registers ................................ ................................ ................................ ................................ ............... 46 4.2.5 messaging queue registers ................................ ................................ ................................ ........................... 47 4.3 pci configuration registers ................................ ................................ ................................ ................... 48 4.3.1 (pciidr; pci:00h, loc:00h) pci configuration id register ................................ ................................ ........... 48 4.3.1.1 (pcicr; pci:04h, loc:04h) pci command register ................................ ................................ ................................ 48 4.3.2 (pcisr; pci:06h, loc:06h) pci status register ................................ ................................ ............................ 49 4.3.3 (pcirev; pci:08h, loc:08h) pci revision id register ................................ ................................ .................. 49 4.3.4 (pciccr; pci:09-0bh, loc:09-0bh) pci class code register ................................ ................................ ...... 50 4.3.5 (pciclsr; pci:0ch, loc:0ch) pci cache line size register ................................ ................................ ....... 50 4.3.6 (pciltr; pci:0dh, loc:0dh) pci latency timer register ................................ ................................ ............. 50 4.3.7 (pcihtr; pci:0eh, loc:0eh) pci header type register ................................ ................................ .............. 51 4.3.8 (pcibistr; pci:0fh, loc:0fh) pci built-in self test (bist) register ................................ ........................... 51 4.3.9 (pcibar0; pci:10h, loc:10h) pci base address register for memory accesses to local, runtime, and dma registers ................................ ................................ ................................ .................... 52 4.3.10 (pcibar1; pci:14h, loc:14h) pci base address register for i/o accesses to local, runtime, and dma registers ................................ ................................ ................................ .................... 52 4.3.11 (pcibar2; pci:18h, loc:18h) pci base address register for memory accesses to local address space 0 ................................ ................................ ................................ ................................ ........ 53 4.3.12 (pcibar3; pci:1ch, loc:1ch) pci base address register for memory accesses to local address space 1 ................................ ................................ ................................ ................................ ........ 54 4.3.13 (pcibar4; pci:20h, loc:20h) pci base address register ................................ ................................ .......... 54 4.3.14 (pcibar5; pci:24h, loc:24h) pci base address register ................................ ................................ .......... 54 4.3.15 (pcicis; pci:28h, loc:28h) pci cardbus cis pointer ................................ ................................ ................. 55 4.3.16 (pcisvid; pci:2ch, loc:2ch) pci subsystem vendor id ................................ ................................ ........... 55 4.3.17 (pcisid; pci:2eh, loc:2eh) pci subsystem id ................................ ................................ .......................... 55 4.3.18 (pcierbar; pci:30h, loc:30h) pci expansion rom base register ................................ .......................... 55 4.3.19 (pciilr; pci:3ch, loc:3ch) pci interrupt line register ................................ ................................ .............. 55 4.3.20 (pciipr; pci:3dh, loc:3dh) pci interrupt pin register ................................ ................................ ............... 56 4.3.21 (pcimgr; pci:3eh, loc:3eh) pci min_gnt register ................................ ................................ .................. 56 4.3.22 (pcimlr; pci:3fh, loc:3fh) pci max_lat register ................................ ................................ ................... 56
table of contents ? ? plx technology, inc., 1997 page vi version 0.93 4.4 local configuration registers ................................ ................................ ................................ .............. 57 4.4.1 (las0rr; pci:00h, loc:80h) local address space 0 range register for pci to local bus .......................... 57 4.4.2 (las0ba; pci:04h, loc:84h) local address space 0 local base ad dress (remap) register ........................ 57 4.4.3 (larbr; pci:08h or ach, loc:88h or 12ch) local/dma arbitration register ................................ ................ 58 4.4.4 (bigend; pci:0ch, loc:8ch) big/little endian descriptor register ................................ .............................. 59 4.4.5 (eromrr; pci:10h, loc:90h) expansion rom range register ................................ ................................ ... 60 4.4.6 (eromba; pci:14h, loc:94h) expansion rom local base address (remap) register and breqo control 60 4.4.7 (lbrd0; pci:18h, loc:98h) local address space 0/expansion rom bus region descriptor register .......... 61 4.4.8 (dmrr; pci:1ch, loc:9ch) local range register for direct master to pci ................................ .................. 62 4.4.9 (dmlbam; pci:20h, loc:a0h) local bus base address register for direct master to pci memory ............... 62 4.4.10 (dmlbai; pci:24h, loc:a4h) local base address register for direct master to pci io/cfg ...................... 62 4.4.11 (dmpbam; pci:28h, loc:a8h) pci base address (remap) register for direct master to pci memory ....... 63 4.4.12 (dmcfga; pci:2ch, loc:ach) pci configuration address register for direct master to pci io/cfg ......... 64 4.4.13 (las1rr; pci:f0h, loc:170h) local address space 1 range register for pci to local bus ...................... 64 4.4.14 (las1ba; pci:f4h, loc:174h) local address space 1 local base address (remap) register ................... 65 4.4.15 (lbrd1; pci:f8h, loc:178h) local address space 1 bus region descriptor register ................................ 65 4.5 runtime registers ................................ ................................ ................................ ................................ ........ 66 4.5.1 (mbox0; pci:40h or 78h, loc:c0h) mailbox register 0 ................................ ................................ ................ 66 4.5.2 (mbox1; pci:44h or 7ch, loc:c4h) mailbox register 1 ................................ ................................ ................ 66 4.5.3 (mbox2; pci:48h, loc:c8h) mailbox register 2 ................................ ................................ ........................... 66 4.5.4 (mbox3; pci:4ch, loc:cch) mailbox register 3 ................................ ................................ .......................... 66 4.5.5 (mbox4; pci:50h, loc:d0h) mailbox register 4 ................................ ................................ ........................... 66 4.5.6 (mbox5; pci:54h, loc:d4h) mailbox register 5 ................................ ................................ ........................... 67 4.5.7 (mbox6; pci:58h, loc:d8h) mailbox register 6 ................................ ................................ ........................... 67 4.5.8 (mbox7; pci:5ch, loc:dch) mailbox register 7 ................................ ................................ .......................... 67 4.5.9 (p2ldbell; pci:60h, loc:e0h) pci to local doorbell register ................................ ................................ ..... 67 4.5.10 (l2pdbell; pci:64h, loc:e4h) local to pci doorbell register ................................ ................................ ... 67 4.5.11 (intcsr; pci:68h, loc:e8h) interrupt control/status ................................ ................................ .................. 68 4.5.12 (cntrl; pci:6ch, loc:ech) eeprom control, pci command codes, user i/o control, init control register ................................ ................................ ................................ ................................ ................. 70 4.5.13 (pcihidr; pci:70h, loc:f0h) pci permanent configuration id register ................................ ..................... 71 4.5.14 (pcihrev; pci:74h, loc:f4h) pci permanent revision id register ................................ ........................... 71 4.6 dma registers ................................ ................................ ................................ ................................ ................ 72 4.6.1 (dmamode0; pci:80h, loc:100h) dma channel 0 mode register ................................ ............................... 72 4.6.2 (dmapadr0; pci:84h, loc:104h) dma channel 0 pci address register ................................ ..................... 73 4.6.3 (dmaladr0; pci:88h, loc:108h) dma channel 0 local address register ................................ ................... 73
table of contents ? ? plx technology, inc., 1997 page vii version 0.93 4.6.4 (dmasiz0; pci:8ch, loc:10ch) dma channel 0 transfer size (bytes) register ................................ ........... 73 4.6.5 (dmadpr0; pci:90h, loc:110h) dma channel 0 descriptor pointer register ................................ ............... 73 4.6.6 (dmamode1; pci:94h, loc:114h) dma channel 1 mode register ................................ ............................... 74 4.6.7 (dmapadr1; pci:98h, loc:118h) dma channel 1 pci address register ................................ ..................... 75 4.6.8 (dmaladr1; pci:9ch, loc:11ch) dma channel 1 local address register ................................ ................. 75 4.6.9 (dmasiz1; pci:a0h, loc:120h) dma channel 1 transfer size (bytes) register ................................ ........... 75 4.6.10 (dmadpr1; pci:a4h, loc:124h) dma channel 1 descriptor pointer register ................................ ............ 75 4.6.11 (dmacsr0; pci:a8h, loc:128h) dma channel 0 command/status register ................................ ............. 76 4.6.12 (dmacsr1; pci:a9h, loc:129h) dma channel 1 command/status register ................................ ............. 76 4.6.13 (dmaarb; pci:ach, loc:12ch) dma arbitration register ................................ ................................ .......... 76 4.6.14 (dmathr; pci:b0h, loc:130h) dma threshold register ................................ ................................ ............ 77 4.7 messaging queue registers ................................ ................................ ................................ ..................... 78 4.7.1 (oplfis; pci:30h, loc:b0) outbound post list fifo interrupt status register ................................ ............ 78 4.7.2 (oplfim; pci:34h, loc:b4) outbound post list fifo interrupt mask register ................................ ............. 78 4.7.3 (iqp; pci:40h) inbound queue port ................................ ................................ ................................ ............... 78 4.7.4 (oqp; pci:44h) outbound queue port ................................ ................................ ................................ ........... 79 4.7.5 (mqcr; pci:c0h, loc:140h) messaging queue configuration register ................................ ........................ 79 4.7.6 (qbar; pci:c4h, loc:144h) queue base address register ................................ ................................ ......... 79 4.7.7 (ifhpr; pci:c8h, loc:148h) inbound free head pointer register ................................ ................................ 80 4.7.8 (iftpr; pci:cch, loc:14ch) inbound free tail pointer register ................................ ................................ .. 80 4.7.9 (iphpr; pci:d0h, loc:150h) inbound post head pointer register ................................ ................................ 80 4.7.10 (iptpr; pci:d4h, loc:154h) inbound post tail pointer register ................................ ................................ . 80 4.7.11 (ofhpr; pci:d8h, loc:158h) outbound free head pointer register ................................ .......................... 81 4.7.12 (oftpr; pci:dch, loc:15ch) outbound free tail pointer register ................................ ........................... 81 4.7.13 (ophpr; pci:e0h, loc:160h) outbound post head pointer register ................................ .......................... 81 4.7.14 (optpr; pci:e4h, loc:164h) outbound post tail pointer register ................................ ............................. 81 4.7.15 (qsr; pci:e8h, loc:168h) queue status/control register ................................ ................................ .......... 82 5. pin description ................................ ................................ ................................ ................................ .................... 84 5.1 pin summary ................................ ................................ ................................ ................................ .................... 84 5.2 pinout common to all bus modes ................................ ................................ ................................ ........... 86 5.3 c bus mode pinout ................................ ................................ ................................ ................................ ......... 90 5.4 j bus mode pinout ................................ ................................ ................................ ................................ ......... 92 5.5 s bus mode pinout ................................ ................................ ................................ ................................ ......... 94 6. electrical specifications ................................ ................................ ................................ .............................. 96
table of contents ? ? plx technology, inc., 1997 page viii version 0.93 7. package mechanical dimensions ................................ ................................ ................................ .................. 99 7.1 package mechanical dimensions ................................ ................................ ................................ ............. 99 7.2 typical pci bus master adapter ................................ ................................ ................................ ............. 100 7.3 9080 pin out (s mode, j mode, and c mode) ................................ ................................ ............................ 101 8. timing diagrams ................................ ................................ ................................ ................................ ................. 102 8.1 list of timing diagrams ................................ ................................ ................................ .............................. 102
pci 9080 pci i/o accelerator february 28, 1997 i 2 o compatible pci bus master interface chip version 0.93 prelimi nary for adapters and e mbedded systems ? ? plx technology, inc., 1997 page 1 version 0.93 features pci version 2.1 compliant bus master interface chip for adapters and embedded systems i 2 o compatible messaging unit 3.3 or 5 volt pci signaling, 5 volt core, low-power cmos in 208-pin pqfp two independent dma channels for local bus memory to/from pci host bus data transfers eight programmable fifos for zero wait state burst operation pci local data transfers up to 132 mb/sec programmable local bus supports nonmultiplexed 32 -bit address/data, multiplexed 32 or 16 bit, and slave accesses of 32, 16, or 8 bit local bus devices local bus runs asynchronously to the pci bus eight 32 bit mailbox and two 32 bit doorbell registers performs big endian/little endian conversion upward compatibility with pci 9060/9060es/9060sd (see compatibility notes) 1. general description the pci 9080 provides a compact, high performance pci bus master interface for adapter boards and embedded systems. the programmable local bus of the chip can be configured to directly connect a wide variety of processors, controllers and memory subsystems. the pci 9080 contains an intelligent i/o (i 2 o) messaging unit that allows high performance and compatible software implementations of the i 2 o bus protocol specification. users of the pci 9060, 9060es and 9060sd chips may upgrade their products to support i 2 o, 3.3 volts and other new features with little or no change to existing hardware and software. the pci 9080 provides two independent chaining dma channels with bidirectional fifos supporting zero wait state burst transfers between host and local memory. slave transfers are performed through a third fifo. a fourth fifo allows the local processor and other controllers to perform direct bus master transfers to the pci bus. the pci 9080 also allows a local processor to configure other pci devices in the system. serial eeprom pci bus local bus cpu boot rom local memory i/o device (lan, disk, video, etc.) fifos pci 9080 control: - dma - i 2 o - unaligned transfer pci local run-time dma i 2 o registers local bus interface pci interface figure 1 - 1 . typical adapter or block diagram
section 1 pci 9080 general description ? ? plx technology, inc., 1997 page 2 version 0.93 pci bus interface & arbiter pci bus state machines pci config. internal registers local config. dma fifos local bus interface: - select bus width 8,16, or 32 bit - endian conversion - select muxed or non-muxed addr/data local bus state machines eeprom initialization i 2 o messaging dir. master write dir. master read dir. slave write dir. slave read dma1 pci/loc dma1 loc/pci dma0 pci/loc dma0 loc/pci control logic i 2 o messaging dma dma chaining unaligned xfer run-time pci target (for direct slave xfers) pci initiator (for ch 1 dma xfers) pci initiator (for ch 0 dma xfers) pci initiator (for direct master xfers) local master (for direct slave xfers) local master (for ch 1 dma xfers) local master (for ch 0 dma xfers) local slave (for direct master xfers) figure 1 - 2 . pci 9080 internal block diagram 1. 1 applications for the pci 9080 1. 1 .1 pci adapter cards major pci adapter card applications for the pci 9080 include high performance communications, networking, disk control, multimedia and video adapters. the pci 9080 moves data between the host pci bus and the adapter local bus in several ways. first, the local cpu or host processor may program the dma controller of the pci 9080 to move data between the adapter memory and the host pci bus. second, the 9080 can perform ?direct master transfers,? whereby a local cpu or controller accesses the pci bus directly through a pci master transfer. the 9080 also supports slave transfers in which another pci device is the master. finally, the 9080 contains a complete messaging unit with mailbox registers, doorbell registers and queue management pointers that can be used for message passing under the i 2 o protocol or a custom protocol. 1. 1 .2 embedded systems another application for the 9080 is in embedded systems, such as network hubs and routers, printer engines and industrial equipment. in this configuration, all four of the above-mentioned data transfer modes are used. in addition, the pci 9080 supports type 0 and type 1 pci configuration cycles, which allows the embedded cpu to act as the embedded system host and to configure the other pci devices in the system.
section 1 pci 9080 general description ? ? plx technology, inc., 1997 page 3 version 0.93 1. 2 major features pci 2.1 compliant. the pci 9080 is compliant with all aspects of pci specification version 2.1. i 2 o messaging unit. the pci 9080 incorporates an i 2 o messaging unit. this enables the adapter or embedded system to communicate with other i 2 o-supported devices. the i 2 o messaging unit is fully compatible with the pci extension of the i 2 o version 1.5 specification. dual independent programmable dma controllers with bidirectional fifos. the pci 9080 provides two independently programmable dma controllers with bidirectional fifos for each channel. each channel supports both nonchaining and chaining dma modes and demand mode dma, and end of transfer (eot) mode. direct bus master. the pci 9080 supports both memory mapped burst transfer accesses and i/o mapped single transfer accesses to the pci bus from the local bus master. the pci 9080 also supports pci bus interlock (?lock#?) cycles. bidirectional fifos for both read- and write-enable high-performance bursting on the local and pci buses. pci host capability. in direct master mode, the pci 9080 can generate type 0 or type 1 pci configuration cycles. direct slave. the pci 9080 supports both memory mapped and i/o mapped burst accesses to pci bus from the local bus master. bidirectional fifos for both read- and write-enable high-performance bursting on the local and pci buses. programmable local bus modes . the pci 9080 is a pci bus master interface chip that connects a pci bus to one of three local bus types, selected through mode pins. the pci 9080 may be connected to any local bus with a similar design with little or no glue logic. table 1- 1 lists the three modes. table 1 - 1 . programmable local bus modes mode description c 32 -bit address/32 -bit da ta, nonmultiplexed j 32 -bit address/32 -bit data, multiplexed s 32 -bit address/16 -bit data, multiplexed interrupt generator. the pci 9080 can generate pci and local interrupts from several sources. clock. the pci 9080 local bus interface runs from a local ttl clock and generates the necessary internal clocks. this clock runs asynchronously to the pci clock. there is a buffered pci clock (bpclko) for the local side to use. bpclko may be connected to lclk. 3.3 volt and 5 volt operation. the 9080 provides either 3.3 volt or 5 volt signaling on the pci bus. a 3.3 v signaling environment requires 5 v and 3.3 v vcc. a 5 v pci bus and local bus environment requires 5 v vcc. serial eeprom interface. the pci 9080 contains an optional serial eeprom interface that can be used to load configuration information. this is useful for loading information that is unique to a particular adapter (such as network id or vendor id). mailbox registers. the pci 9080 contains eight 32 bit mailbox registers that may be accessed from either the pci or the local bus. doorbell registers. the pci 9080 includes two 32 bit doorbell registers. one generates interrupts from the pci bus to the local bus. the other generates interrupts from the local bus to the pci bus. unaligned dma transfer support. the pci 9080 can transfer data on any byte boundary. big/little endian conversion. the pci 9080 supports dynamic switching between big endian and little endian operations for direct slave, direct master, dma, and the internal register accesses on the local side. note: pci bus is always little endian.
section 1 pci 9080 general description ? ? plx technology, inc., 1997 page 4 version 0.93 1. 3 compatibility of pci 9080 with pci 9060, 9060es, and 9060sd the pci 9080 is upward compatible with the pci 9060, 9060es and 9060sd, except as noted in table 1-2 and section 4.1, ?new register definitions summary.? it contains all the features of the pci 9060, as well as an i 2 o messaging unit, endian conversion state machine and deeper fifos. 1. 3 .1 pin compatibility when upgrading from the pci 9060, 9060es or 9060sd, observe the following new pin definitions listed in table 1-2 . table 1 - 2 . pin compatibility 9060/es/sd 9080 pin # pin name description pin name description 170 clksel eeprom clock select pcivolt 1=5.0 v pci bus 0=3.3 v pci bus 175 ee1mc optional eeprom clock source eesel eeprom select 1=93cs46 (1k bit) 0=93cs56 (2k bit) 1. 3 .2 register compatibility all registers implemented in the 9060/es/sd are implemented in the 9080. there are a limited number of new bit definitions and several new registers. see section 4.1, ?new register definitions summary.?
section 1 pci 9080 general description ? ? plx technology, inc., 1997 page 5 version 0.93 1. 4 comparison of pci 9060, pci 9060es, pci 9060sd, and pci 9080 table 1 - 3 . comparison of the pci 9060, pci 9060es, pci 9060sd, and pci 9080 feature pci 9060 rev 3 pci 9060es pci 9060sd pci 9080 number of dma channel(s) 2 0 1 2 local address spaces 2 2 3 3 direct master mode yes yes no yes mailbox registers eight 32 bit four 32 bit four 32 bit eight 32 bit doorbell registers two 32 bit two 8 bit two 8 bit two 32 bit fifos 8 4 6 8 fifo depth?direct slave write, direct master write, dma 0 read and dma 0 write 8 lwords (32 bytes) 16 lwords (64 bytes) 16 lwords (64 bytes) 32 lwords (128 bytes) fifo depth ?direct slave read, direct master read, dma 1 read and dma 1 write 8 lwords (32 bytes) 16 lwords (64 bytes) 16 lwords (64 bytes) 16 lwords (64 bytes) llocko# pin for lock cycles no yes yes yes waiti# pin for wait state generation no yes yes yes bpclko pin; buffered pci clock no yes yes yes dreq and dack pins for demand mode dma support yes no yes (channel 1 only) yes register addresses ? identical except 9060es has no dma registers and tables 25, 26 and 43 were added identical, except 9060sd has one dma register and tables 25 and 26 were added identical except 9080 has additional i 2 o related registers and 30h, 34h, 40h and 44h were remapped pinout ? signals deleted: dreq0 (pin 29) dack0 (pin 30) input signals added: waiti (pin 6) bigend# (pin 48) output signals added: bpclk (pin 168) llocko (pin 7) signals deleted: breq0 (pin 21) dmpaf# (pin 8) dreq0 (pin 29) dack0 (pin 30) btermo# (pin 28) input signals added: waiti (pin 6) bigend# (pin 48) eot (pin 164 in c mode, pin 5 in j and s modes) output signals added: bpclk (pin 168) llocko (pin 7) signals changed: pcivolt (pin 170) eesel (pin 175) big/little endian conversion no yes yes yes spec. 2.1 deferred reads no yes yes yes programmable prefetch counter no yes yes yes write and invalidate cycle no yes yes yes additional device and vendor id register no yes yes yes i 2 o messaging unit no no no yes 3.3 v pci bus signaling no no no yes
section 2 pci 9080 b us operation ? ? plx technology, inc., 1997 page 6 version 0.93 2. bus operation 2. 1 pci bus cycles the pci 9080 is compliant with pci specification v2.1. refer to the pci 2.1 spec for any specific features of pci bus. 2. 1 .1 pci target command codes as a target, the pci 9080 allows access to the pci 9080 internal registers and the local bus, using the commands listed in table 2-1 . table 2 - 1 . pci target command codes command type code (c/be[3:0]#) i/o read 0010 (2h) i/o write 0011 (3h) memory read 0110 (6h) memory write 0111 (7h) memory read multiple 1100 (ch) memory read line 1110 (eh) memory write and invalidate 1111 (fh) configuration read 1010 (ah) configuration write 1011 (bh) all read or write accesses to the pci 9080 can be byte, word or long word accesses. all memory commands are aliased to the basic memory commands. all i/o accesses to the pci 9080 are decoded to a long word boundary. the byte enables are used to determine which bytes are read or written. an i/o access with illegal byte enable combinations is terminated with a target abort. 2. 1 .2 pci master command codes the pci 9080 can access the pci bus to perform dma transfers or direct master local to pci bus transfers. during the direct master or dma transfer, the command code assigned to the pci 9080 internal register location (pci [6ch])( loc [ech]) bits [15:0] will be used as the pci command code. 2. 1 .2 .1 dma master command codes the dma controllers of the pci 9080 can generate the memory cycles listed in table 2-2 . table 2 - 2 . dma master command codes command type code (c/be[3:0]#) memory read 0110 (6h) memory write 0111 (7h) memory read multiple 1100 (ch) memory read line 1110 (eh) memory write and invalidate 1111 (fh) 2. 1 .2 .2 direct local to pci command codes for direct local to pci bus accesses, the pci 9080 can generate the cycles listed in table 2-3 through table 2- 5 . table 2 - 3 . local to pci memory access command type code (c/be[3:0]#) memory read 0110 (6h) memory write 0111 (7h) memory read multiple 1100 (ch) memory read line 1110 (eh) table 2 - 4 . local to pci i/o access command type code (c/be[3:0]#) i/o read 0010 (2h) i/o write 0011 (3h) table 2 - 5 . local to pci configuration access command type code (c/be[3:0]#) configuration memory read 1010 (ah) configuration memory write 1011 (bh)
section 2 pci 9080 b us operation ? ? plx technology, inc., 1997 page 7 version 0.93 2. 2 local bus cycles the pci 9080 connects a pci host bus to several local processor bus types: 32 -bit nonmultiplexed (c mode) 32 -bit multiplexed (j mode) 16 -bit multiplexed (s mode) the pci 9080 operates in one of three modes, selected through mode pins, corresponding to three bus types? c, j, and s. 2. 2 .1 local bus direct master local bus cycles can be continuous single or burst cycles (programmable by way of the pci 9080 internal registers). as a local bus target, the pci 9080 allows access to the pci 9080 internal registers and the pci bus. in c and j modes, local bus direct master accesses to the pci 9080 must be for a 32 bit non-pipelined bus. in s mode, local bus direct master accesses to the pci 9080 must be for a 16 bit n on-pipelined bus. 2. 2 .2 local bus direct slave the pci bus master read/write to local bus (pci 9080 is a pci bus target and local bus master). 2. 2 .2 .1 ready/wait state control if the ready input is disabled, the external ready input has no effect on wait states for a local access. wait states between data cycles are generated internally by a wait state counter. the wait state counter is initialized with its configuration register value at the start of each data access. if the ready input is enabled, the ready input has no effect until the wait state counter is 0. the ready input then controls the number of additional wait states. the bterm input is not sampled until the wait state counter is 0. 2. 2 .2 .2 burst mode and continuous burst mode (bterm ?burst terminate? mode) note: bterm refers to pci 9080 internal register bit. bterm# refers to the pci 9080 external signal. 2. 2 .2 .2 .1 burst mode if bursting is enabled and the bterm input is not enabled, bursting can start on any boundary and continue up to an address boundary as described in table 2-6 . after the data at the boundary is transferred, the pci 9080 generates a new address cycle (ads#). table 2 - 6 . burst mode bus mode burst c, j 32 -bit bus?4 lwords or up to a quad lword boundary (la3, la2 = 11) c, j 16 -bit bus?4 words or up to a quad word boundary (la2, la1 = 11) c, j 8 -bit bus?4 bytes or up to a quad byte boundary (la1, la0 = 11) s 16 -bit bus?8 words or up to a quad lword boundary (la3, la2 = 11) 2. 2 .2 .2 .2 continuous burst mode (bterm# ?burst terminate? mode) bterm mode enables the pci 9080 to perform long bursts to devices that can accept longer than 4 lword bursts. the pci 9080 generates one address cycle and then continues to burst data. if a device requires a new address cycle after a certain address boundary, it can assert bterm# input to cause the pci 9080 to generate a new address cycle. bterm# input acknowledges the current data transfer and requests that a new address cycle be generated (ads#). the address will be for the next data transfer. if bterm mode is enabled, the pci 9080 asserts blast# only if its fifos become full/empty or if a transfer is complete. note: if the bterm# input signal is asserted, the blast# will not be asserted until the conditions described above are met.
section 2 pci 9080 b us operation ? ? plx technology, inc., 1997 page 8 version 0.93 2. 2 .2 .2 .3 partial lword accesses lword accesses in which not all byte enables are asserted are broken into single address and data cycles, as listed in table 2-7 . table 2 - 7 . partial lword accesses register value (pci 18h)(loc 98h) result burst enable bterm enable (number of transfers) 0 0 single cycle (default) 0 1 single cycle 1 0 burst 4 lwords at a time 1 1 continuous burst mode 2. 2 .2 .3 recovery states in j and s modes, the pci 9080 inserts one recovery state between the last data transfer and the next address cycle. the pci 9080 does not support the 80960j feature of using the ready input to add recovery states. no additional recovery states are added if the ready input remains asserted during the last data cycle. 2. 2 .2 .4 local bus read accesses for all local bus read accesses, the pci 9080 reads only bytes corresponding to byte enables requested by the pci initiator. 2. 2 .2 .5 local bus write accesses for local bus writes, only the bytes specified by a pci bus master or by the dma controller of the pci 9080 are written. access to an 8- or 16 -bit bus results in the pci bus lword being broken into multiple local bus transfers. for each transfer, the byte enables are encoded as in the 80960c to provide local address bits [la1:la0]. 2. 2 .2 .6 direct slave write accesses? 8 - and 16-bit buses a direct pci access to an 8- or 16 -bit bus results in the pci bus lword being broken into multiple local bus transfers. for each transfer, the byte enables are encoded as in the 80960c to provide local address bits [la1:la0]. 2. 2 .2 .7 local bus data parity there is one data parity pin for each byte lane of the pci 9080 data bus (dp[3:0]). even data parity is generated for each lane during local bus reads from the pci 9080 and during pci 9080 master writes to the local bus. even data parity is checked during local bus writes to the pci 9080 and during pci 9080 reads from the local bus. parity is checked for each byte lane with an asserted byte enable. pchk# is asserted in the clock cycle following the data being checked if a parity error is detected. generation or use of local bus data parity is optional. the signals on the data parity pins do not effect operation of the pci 9080. pci bus parity checking and generation is independent of local bus parity checking and generation. 2. 2 .2 .8 local bus little/big endian the pci bus is a little endian bus (that is, data is long word aligned to the lowermost byte lane). byte 0 (address 0) appears in ad[7:0], byte 1 appears in ad[15:8], byte 2 appears in ad[23:16] and byte 3 appears in ad[31:24]. the pci 9080 local bus can be programmed to operate in big or little endian mode. in big endian mode, the pci 9080 transposes the data byte lanes. data is transferred as shown in table 2-8 through table 2-11 . 2. 2 .2 .8 .1 32 bit local bus?big endian mode data is long word aligned to the uppermost byte lane. byte 0 appears on local data [31:24], byte 1 appears on local data [23:16], byte 2 appears on local data [15:8] and byte 3 appears on local data [7:0]. 2. 2 .2 .8 .2 16 bit local bus?big endian mode for a 16 bit local bus, the pci 9080 can be programmed to use the upper or lower word lane. byte lanes and burst order are listed in table 2-8 and table 2-9.
section 2 pci 9080 b us operation ? ? plx technology, inc., 1997 page 9 version 0.93 table 2 - 8 . upper word lane transfer burst order byte lane first transfer byte 0 appears on local data [31:24] byte 1 appears on local data [23:16] second transfer byte 2 appears on local data [31:24] byte 3 appears on local data [23:16] table 2 - 9 . lower word lane transfer burst order byte lane first transfer byte 0 appears on local data [15:8] byte 1 appears on local data [7:0] second transfer byte 2 appears on local data [15:8] byte 3 appears on local data [7:0] 2. 2 .2 .8 .3 8 bit local bus?big endian mode for an 8 bit local bus, the pci 9080 can be programmed to use the upper or lower byte lane. byte lanes and burst order are listed in table 2-10 and table 2-11 . table 2 - 10 . upper byte lane transfer burst order byte lane first transfer byte 0 appears on local data [31:24] second transfer byte 1 appears on local data [31:24] third transfer byte 2 appears on local data [31:24] fourth transfer byte 3 appears on local data [31:24] table 2 - 11 . lower byte lane transfer burst order byte lane first transfer byte 0 appears on local data [7:0] second transfer byte 1 appears on local data [7:0] third transfer byte 2 appears on local data [7:0] fourth transfer byte 3 appears on local data [7:0] for each of the following transfer types, the pci 9080 local bus can be independently programmed to operate in little endian or big endian mode: local bus accesses to pci 9080 configuration registers direct slave pci accesses to local address space 0 direct slave pci accesses to local address space 1 direct slave pci accesses to expansion rom dma channel 0 accesses to the local bus dma channel 1 accesses to the local bus for local bus configuration accesses, an input pin can be used to dynamically change the endian mode. note: pci bus is always little endian mode.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 10 version 0.93 3. functional description 3. 1 reset 3. 1 .1 pci bus input rst# the pci bus rst# input causes all pci bus outputs to float, resets the entire pci 9080 and causes the local reset output, lreseto#, to be asserted. 3. 1 .2 local bus input lreseti# when asserted, the lreseti# input resets the local bus portion of the pci 9080, clears all local configuration registers and causes the lreseto# output to be asserted. 3. 1 .3 local bus output lreseto# lreseto# is asserted when pci bus rst# input is asserted, the lreseti# input is asserted, or the software reset bit in the init control register is set to 1. 3. 1 .4 software reset a host on the pci bus can set the software reset bit in the init control register to reset the pci 9080 and assert the lreseto# output. the pci configuration registers will not be reset. when the software reset bit is set, the pci 9080 responds to pci accesses, but not to local bus accesses. the pci 9080 remains in this reset condition until the pci host clears the bit. note: the local side cannot clear this reset bit because the local bus is in a reset state. 3. 2 pci 9080 initialization the pci 9080 configuration registers can be programmed by an optional serial eeprom and/or by a local processor. note: the internal configuration register can also be accessed by the pci host processor after power up initialization. 3. 2 .1 eeprom initialization during serial eeprom initialization, the pci 9080 response to pci target accesses is retry. during serial eeprom initialization, the pci 9080 response to a local processor is to hold off readyo#. 3. 2 .2 local initialization the pci 9080 issues a retry to all pci accesses until the "local init done bit" in the init control register is set. the "init done bit" is programmable through local bus configuration accesses. if this bit is not going to be set by a local processor, then nb# input should be tied low. holding nb# input low externally forces the local init done bit to 1. the pci 9080 default values are used if a serial eeprom is not present and the local "init status" bit is set to a ?1? by holding the nb# input low or set by the local processor. 3. 3 eeprom after reset, the pci 9080 attempts to read the serial eeprom to determine its presence. an active low start bit indicates the serial eeprom is present (pci 9080 supports 93cs46 (1k) or 93cs56 (2k), selectable by way of the eesel pin). (refer to the manufacturer?s data sheet for the particular serial eeprom being used.) the first word is then checked to verify the serial eeprom is programmed. if the first word (16 bit) is all 1s, a blank serial eeprom pci 9080 will use default values instead. the serial eeprom can be read or programmed from the pci or local bus. bits [27:24] of the serial eeprom control register controls the pci 9080 pins that enable the reading or writing of serial eeprom data bits. (refer to the manufacturer?s data sheet for the particular serial eeprom being used.) the pci 9080 has three serial eeprom load options: short load mode?the short# input pin is pulled down and the pci 9080 loads 5 lwords from the serial eeprom long load mode?the short# input pin is pulled up, bit 25 of the ?local bus region descriptor register [loc 98h]? is set to 0 and the pci 9080 loads 17 lwords from the serial eeprom extra long load mode?the short# input pin is pulled up, bit 25 of the ?local bus region descriptor register [loc 98h]? is set to 1 during long load from the serial eeprom and the pci 9080 loads 21 lwords from the serial eeprom
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 11 version 0.93 3. 3 .1 short eeprom load the registers listed in table 3-1 are loaded from serial eeprom after reset is de-asserted if the short# pin is low. the serial eeprom is organized in words (16 bit). pci 9080 first loads msw (most significant word (bits [31:16])), starting from the most significant bit (bit 31). the pci 9080 then loads lsw (least significant word (bits [15:0])), starting again from the most significant bit (bit 15). therefore, the pci 9080 will load device id, vendor id, class code, and so forth. the five 32 -bit words are stored sequentially in the serial eeprom. table 3 - 1 . short eeprom load registers eeprom offset eeprom value description 0 9080 device id 2 10b5 vendor id 4 0680 class code 6 0002 class code, revision 8 0000 maximum latency, minimum grant a 0100 interrupt pin, interrupt line routing c xxxx msw of mailbox 0 (user defined) e xxxx lsw of mailbox 0 (user defined) 10 xxxx msw of mailbox 1 (user defined) 12 xxxx lsw of mailbox 1 (user defined) 3. 3 .2 long eeprom load the registers listed in table 3-2 are loaded from serial eeprom after reset is de-asserted if the short# pin is high. the serial eeprom is organized in words (16 bit). pci 9080 first loads msw (most significant word (bits [31:16])), starting from the most significant bit (bit 31). the pci 9080 then loads lsw (least significant word (bits [15:0])), starting again from the most significant bit (bit 15). therefore, the pci 9080 will load device id, vendor id, class code, and so forth. the serial eeprom value can be entered into a data i/o programmer in the order shown below. the value shown are examples and must be modified for each particular application. the 34 16 -bit words listed in the table are stored sequentially in the serial eeprom. note: the internal register values and the serial eeprom values can be read or written using plxmon.exe or plxmon95.exe, provided by plx technology.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 12 version 0.93 table 3 - 2 . long eeprom load registers eeprom offset eeprom value description 0 9080 device id 2 10b5 vendor id 4 0680 class code 6 0001 class code, revision 8 0000 maximum latency, minimum grant a 0100 interrupt pin, interrupt line routing c xxxx msw of mailbox 0 (user defined) e xxxx lsw of mailbox 0 (user defined) 10 xxxx msw of mailbox 1 (user defined) 12 xxxx lsw of mailbox 1 (user defined) 14 fff0 msw of range for pci to local address space 0 (1 mb) 16 0000 lsw of range for pci to local address space 0 (1 mb) 18 1000 msw of local base address (remap) for pci to local address space 0 1a 0001 lsw of local base address (remap) for pci to local address space 0 1c 11e4 msw of local arbitration register 1e 0000 lsw of local arbitration register 20 0000 msw of local bus big/little endian descriptor register 22 0000 lsw of local bus big/little endian descriptor register 24 fff0 msw of range for pci to local expansion rom 26 0000 lsw of range for pci to local expansion rom 28 1000 msw of local base address (remap) for pci to local expansion rom 2a 0010 lsw of local base address (remap) for pci to local expansion rom 2c 4dc3 msw of bus region descriptors for pci to local accesses 2e 04c3 lsw of bus region descriptors for pci to local accesses 30 ff00 msw of range for direct master to pci 32 0000 lsw of range for direct master to pci 34 4000 msw of local base address for direct master to pci memory 36 0000 lsw of local base address for direct master to pci memory 38 7000 msw of local bus address for direct master to pci io/cfg 3a 0000 lsw of local bus address for direct master to pci io/cfg 3c 0000 msw of pci base address (remap) for direct master to pci 3e 183f lsw of pci base address (remap) for direct master to pci 40 0000 msw of pci configuration address register for direct master to pci io/cfg 42 0000 lsw of pci configuration address register for direct master to pci io/cfg note: there are 60 unused bytes in the eeprom that can be used for user-defined applications.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 13 version 0.93 3. 3 .3 extra long eeprom load an extra long load mode is provided in the pci 9080 to load 5 more lwords from the eeprom. if bit 25 is set to 1 in the ?local bus region descriptor [loc 98h]?, the following 5 lword registers are loaded in addition to normal long load process (refer to section 3.3.2 ). bit 25 of the ?local bus region descriptor [loc 98h]? must be set to 1 during long load process. (refer to table 3-3 .) table 3 - 3 . extra long eeprom load registers eeprom offset eeprom value description 44 9080 subsystem id 46 10b5 subsystem vendor id 48 fff0 msw of range for pci to local address space 1 (1 mb) 4a 0000 lsw of range for pci to local address space 1 (1 mb) 4c 1000 msw of local base address (remap) for pci to local address space 1 4e 0001 lsw of local base address (remap) for pci to local address space 1 50 0000 msw of bus region descriptors (space 1) for pci to local accesses 52 05c3 lsw of bus region descriptors (space 1) for pci to local accesses 54 0000 msw of pci base address for local expansion rom 56 0000 lsw of pci base address for local expansion rom note: there are 40 unused bytes in the eeprom that can be used for user-defined applications. 3. 3 .4 recommended eeproms a 1k bit (national nm93cs46 or compatible) or 2k bit (national nm93cs56 or compatible) device can be used. refer to table 5-2 in section 5, ?pin description,? for eeprom control pin descriptions. 3. 4 internal register access the pci 9080 chip provides several internal registers, allowing for maximum flexibility in bus interface design and performance. the register types are accessible from both the pci and local buses, including the following: pci configuration registers local configuration registers mailbox registers doorbell registers dma registers messaging queue registers (i 2 o) figure 3-1 illustrates how these registers are accessed. set clear local bus master pci bus master local configuration registers pci configuration registers dma registers pci 9080 mailbox registers pci to local doorbell register local to pci doorbell register messaging queue registers set clear pci interrupt local interrupt figure 3 - 1 . pci 9080 internal register access 3. 4 .1 pci bus access to internal registers the pci 9080 "pci configuration registers" can be accessed from the pci bus with a configuration type 0 cycle. the pci 9080 internal registers can be accessed by a memory cycle, with the pci bus address that matches the base address specified in the pci base address 0 for memory mapped configuration register of the pci 9080. they can also be accessed by an i/o cycle, with
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 14 version 0.93 the pci bus address matching the base address specified in the pci base address 1 for i/o mapped configuration register of the pci 9080. all pci read or write accesses to the pci 9080 registers can be byte, word or long word accesses. all pci memory accesses to the pci 9080 registers can be burst or non-burst. the pci 9080 responds with a pci disconnect for all burst i/o accesses to the pci 9080 registers. 3. 4 .2 local bus access to internal registers the local processor can access all the internal registers of the pci 9080 through either internal or external address decode logic. the pci 9080 provides an address decode mode pin (admode) that selects whether the internal address decode logic is used or whether the designer will supply an external chip select from an external address decoder. figure 3-2 illustrates how the dual address decode logic works. if the address decode mode pin is set to 1, the internal pci 9080 address decode logic is enabled. in this mode, the pci 9080 internal registers are selected when local address bits la[31:29] match input address select pins s[2:0]. if the address decode mode pin is set to 0, the pci 9080 responds to local bus access when s0 is asserted low through external chip select logic. note that s0 must be decoded while ads# is low. all local read or write accesses to the pci 9080 registers can be byte, word or long word accesses. all local accesses to the pci 9080 registers can be burst or non- burst. for c and j modes, accesses must be for a 32 bit non- pipelined bus. the pci 9080 readyo# indicates a data transfer is complete. for s mode, accesses must be for a 16 bit non- pipelined bus. the pci 9080 readyo# indicates a data transfer is complete. la31 la30 la29 s2 s1 s0 address decode mode pin 1 0 pci 9080 internal register chip select pci 9080 internal register chip select pci 9080 = pci 9080 compare s0 (9080 chip select) figure 3 - 2 . dual address decode mode 3. 5 direct data transfer modes figure 3-3 and figure 3-4 illustrate the direct data transfer modes. h o s t c p u p c i b u s l o c a l c p u h o s t c p u a c c e s s e s l o c a l m e m o r y o r i / o = d i r e c t s l a v e r / w l o c a l c p u a c c e s s e s s y s t e m m e m o r y = d i r e c t m a s t e r r / w s y s t e m m e m o r y t o l o c a l m e m o r y = d m a r / w l o c a l m e m o r y o r i / o p h y s i c a l s y s t e m m e m o r y p l x o r s y s t e m c h i p s e t p l x a d d r e s s t r a n s l a t i o n d m a , m e m o r y , i / o c y c l e s i n t e r r u p t s s o f t w a r e p r o t o c o l figure 3 - 3 . direct master, direct slave, and dma
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 15 version 0.93 d o o r b e l l r e g i s t e r s s e t a n d c l e a r i n t e r r u p t s m a i l b o x r e g i s t e r s c a n b e r e a d o r w r i t t e n f r o m b o t h s i d e s u s e d f o r p a s s i n g : c o m m a n d s p o i n t e r s s t a t u s s e t c l e a r s e t c l e a r p c i t o l o c a l l o c a l t o p c i m a i l b o x 0 m a i l b o x 1 m a i l b o x 2 m a i l b o x 3 m a i l b o x 4 m a i l b o x 5 m a i l b o x 6 m a i l b o x 7 figure 3 - 4 . mailbox/doorbell message passing 3. 5 .1 direct master operation (local master to pci target) the pci 9080 supports the direct access of the pci bus by either the local processor or an intelligent controller. five registers are used to define local to pci access: range local base address for direct master to pci memory register local base address for direct master to pci io/cfg register pci configuration address register for direct master to pci io/cfg pci base address 3. 5 .1 .1 decode the range register specifies the local address bits to use for decoding a local to pci access. the local processor can perform only memory cycles. therefore, the local base address for direct master to pci memory register is used to decode an access to pci memory space and the local base address for direct master to pci io/cfg register is used to decode an access to pci i/o space or pci bus configuration cycle access. 3. 5 .1 .2 fifos for direct master memory access to the pci bus, the pci 9080 has a 32 lword (128 byte) write fifo and a 16 lword (64 byte) read fifo. the fifos enable the local bus to operate independently of the pci bus and allows high-performance bursting on the local and pci buses. 3. 5 .1 .3 memory access the local processor can read or write to the pci memory by a read or write to the "local base address for direct master to pci memory register." the pci 9080 will convert the local read/write access to pci bus read/write cycles. the local address space starts from the direct master local base address up to the range. the remap (pci base address) defines the pci starting address. (refer to example 1 in section 3.5.2.1 ). writes ?the pci 9080 continues to accept writes and return readyo# until the write fifo is full. it then holds off readyo# until space becomes available in the write fifo. a programmable direct master fifo ?almost full? status output is provided (dmpaf#). reads ?the pci 9080 holds off readyo# while gathering an lword from the pci bus. programmable prefetch modes are available if prefetch is enabled: prefetch none, 4, 8, 16, or continuous until direct master cycle ends. the read cycle is terminated when the local blast# input is asserted. unused read data is flushed from the fifo. the pci 9080 does not prefetch read data for single cycle direct master reads (local blast# input asserted during first data phase). in this case, the pci 9080 reads a single pci lword. for direct master single cycle reads, the pci 9080 asserts the same pci bus byte enables as asserted on the local bus. for multiple cycle reads, the pci 9080 reads entire long words (all pci byte enables are asserted), regardless of local byte enables. 3. 5 .1 .4 io/cfg access when a local direct master i/o access to the pci bus is made, the pci configuration address register?s configuration enable bit determines if an i/o or configuration access is to be made to the pci bus. local burst accesses are broken into single pci i/o address/data cycles. the pci 9080 does not prefetch read data for i/o and cfg reads. for direct master i/o or configuration cycles, the pci 9080 asserts the same pci bus byte enables as asserted on the local bus.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 16 version 0.93 3. 5 .1 .5 i/o if the configuration enable bit is clear, a single i/o access is made to the pci bus. the local address, remapped decode address bits and the local byte enables are encoded to provide the address and is output with an i/o read or write command during the pci address cycle. for writes, data is loaded into the write fifo and readyo# returned to the local bus. for reads, the pci 9080 holds off readyo# while gathering a lword from the pci bus. 3. 5 .1 .6 cfg (pci configuration type 0 or type 1 cycles) if the configuration enable bit is set, a cfg access is made to the pci bus. in addition to enabling the configuration (bit 31) of (pci [2ch])( loc [ach]), the user must provide all the register information. the register number (bit [7:2]) or the device number (bit [15:11]) must be modified and a new cft read/write cycle must be performed before other registers or devices can be accessed. if the pci configuration address register selects a type 0 command, bits [10:0] from the register are copied to address bits [10:0]. bits [15:11] ?device number? are translated into a single bit being set in pci address bits [31:11]. pci address bits [31:11] can be used as a device select. for a type 1 command, bits [23:0] are copied from the register to bits [23:0] of the pci address. pci address bits [31:2 4] are 0. a configuration read or write command code is output with the address during the pci address cycle. for writes, local data is loaded into the write fifo and readyo# is returned. for reads, the pci 9080 holds off readyo# while gathering an lword from the pci bus. 3. 5 .1 .7 direct bus master lock the pci 9080 supports direct local to pci bus exclusive accesses (locked atomic operations). a locked operation must start with the local bus input llock# being asserted during a direct master bus read cycle. refer to the timing in section 8 , ? timing diagrams .? locked operations are enabled or disabled using the pci base address for direct master to pci register. 3. 5 .1 .8 master/target abort the pci 9080 master/target abort logic enables a local bus master to perform a direct master bus poll of devices to determine whether the devices exist (typically when the local bus performs configuration cycles to the pci bus). if a pci master, target abort, or retry time-out is encountered during a transfer, the pci 9080 asserts lserr# (can be used as a nmi). if the local bus master is waiting for a readyo#, it is asserted along with btermo#. the local master?s interrupt handler can take the appropriate application specific action. it can then clear the abort bits in the pci status register of the pci 9080 to clear the lserr# interrupt and re-enable direct master transfers. if a local bus master is attempting a burst read from a non-responding pci device (master/target abort), it receives the readyo# and btermo# for the first cycle only. if the local processor cannot terminate its burst cycle, it may cause the local processor to hang. the local bus must then be reset from the pci bus or by a local watch-dog timer asserting reseti#. if the local bus master cannot terminate its cycle with btermo#, it should not perform burst cycles when attempting to determine if a pci device exists. 3. 5 .1 .9 write and invalidate the pci 9080 can be programmed to perform direct master write and invalidate cycles through the pci base address (remap) register and the command code register. in write and invalidate mode, the pci 9080 waits until the local bus writes 8 lwords before starting the pci access. this ensures that an 8 lword write completes in one pci bus ownership, as required for write and invalidate to a target with a cache line size of 8 lwords. note: before the write and invalidate cycle, the command code for direct master must be modified to 0fh at (pci [6ch])( loc [ech]) and the cache line size at (pci [0ch])( loc [0ch]) must match the target cache line size.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 17 version 0.93 pci bus master local processor fifos 32 lw deep write 16 lw deep read local range for direct master to pci local base address for direct master to pci memory pcl base address (remap) for direct master to pci local base address for direct master to pci io/cfg pci cfg address register for direct master to pci io/cfg pci command register 1 initialize local direct master access registers local base address for direct master to pci memory space pci address space pci base address local base address for direct master to pci io/cfg local bus access local memory memory command i/o command range range pci bus access cfg or i/o 0 = i/o 1 = cfg cfg address register 0 = i/o 1 = cfg pci cfg command type 0 or 1 cfg type if cfg enabled 3 2 figure 3 - 5 . direct master access of pci bus
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 18 version 0.93 3. 5 .2 direct slave operation (pci master to local bus access) the pci 9080 supports both memory mapped burst transfer accesses and i/o mapped single transfer accesses to the local bus from the pci bus. pci base address registers are provided to set up the location of the adapter in pci memory and i/o space. in addition, local mapping registers allow address translation from pci address space to local address space. there are three spaces available: space 0 space 1 expansion rom space the expansion rom space is intended to support a bootable rom device for the host. each local space can be programmed to operate 8 bit, 16 bit, or 32 bit local bus width. the pci 9080 has an internal wait state generator and external wait state input ( readyi#). readyi# can be disabled or enabled with the internal configuration register. the local bus, independent of the pci bus, can burst as long as the data is available (continuous burst mode) burst 4 lwords at a time perform continuous single cycle, with or without wait state(s) for single cycle direct slave reads, the pci 9080 reads a single local bus lword or partial lword. the pci 9080 disconnects after one transfer for all direct slave i/o accesses. for the highest data transfer rate, the pci 9080 supports posted write and can be programmed to prefetch data during pci burst read. the prefetch size, when enabled, can be 1 to 16 lwords, or until the pci stops requesting. the pci 9080 will prefetch if enabled and drop the local bus after the prefetch counter is reached. in a continuous prefetch mode, the pci 9080 prefetches as long as any fifo space is available and terminates the prefetch when the pci terminates the request. if read prefetching is disabled, the pci 9080 disconnects after one read transfer. if the local side is extremely slow, the pci 9080 can be programmed through the local arbitration and pci mode register to perform delayed reads, as specified in pci specification rev 2.1. in addition to delayed read, the pci 9080 supports the following in pci specification rev 2.1 features. no write while read is pending(retry for reads) write and flush pending read the pci 9080 also supports cached read mode, where prefetched data can be read from the pci 9080 internal fifo instead of from the local side. the address must be subsequent to the previous address and must be 32- bit aligned (next address = current address + 4). the pci 9080 can be programmed to keep the pci bus by generating a wait state(s), de-asserting trdy#, if the write fifo becomes full. the pci 9080 can also be programmed to keep the local bus, lhold is asserted, if the direct slave write fifo becomes empty or the direct slave read fifo becomes full. the local bus is dropped in either case when the local bus latency timer is enabled and expires. the pci 9080 supports on-the-fly endian conversion for space 0, space 1, and expansion rom space. the local bus can be big/little endian by either using the bigend# input pin or the programmable internal register configuration. when bigend# is asserted, it overwrites the internal register configuration. note: the pci bus is always little endian. 3. 5 .2 .1 pci to local address mapping three local address spaces?space 0, space 1, and expansion rom?are accessible from the pci bus. each space is defined by a set of three registers: local address range local base address pci base address a fourth register, bus region descriptors for pci to local accesses register, defines the local bus characteristics for both regions. (refer to figure 3-6 .) 3. 5 .2 .1 .1 byte enables lbe[3:0]# (pins 139, 140, 141, and 142) are encoded based on the configured bus width, as follows: 32-bit bus? for a 32 -bit bus, the four byte enables indicate which of the four bytes are active during a data cycle. be3# byte enable 3?ld[31:24] be2# byte enable 2?ld[23:16] be1# byte enable 1?ld[15:8] be0# byte enable 0?ld[7:0]
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 19 version 0.93 16-bit bus? for a 16 -bit bus, be3#, be1# and be0# are encoded to provide bhe#, la1, and ble#, respectively. be3# byte high enable (bhe#)?ld[15:8] be2# not used be1# address bit 1 (la1) be0# byte low enable (ble#)? ld[7:0] 8-bit bus? for an 8-bit bus, be1# and be0# are encoded to provide la1 and la0, respectively. be3# not used be2# not used be1# address bit 1 (la1) be0# address bit 0 (la0) each pci to local address space is defined as part of reset initialization as described in the next section. 3. 5 .2 .1 .2 local bus initialization software range? specifies which pci address bits to use for decoding a pci access to local bus space. each of the bits corresponds to a pci address bit. bit 31 corresponds to address bit 31. write a value of 1 to all bits that must be included in decode and a 0 to all others. remap pci to local addresses into a local address space? the bits in this register remap (replace) the pci address bits used in decode as the local address bits. local bus region description? specifies the local bus characteristics. 3. 5 .2 .1 .3 pci initialization software pci reset software determines how much address space is required by writing a value of all ones (1) to a pci base address register and then reading back the value. the pci 9080 return zeroes in ?don't care? address bits, effectively specifying the address space required. the pci software then maps the local address space into the pci address space by programming the pci base address register. (refer to figure 3-6 .)
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 20 version 0.93 pci bus master local processor fifos 32 lw deep write 16 lw deep read range for pci to local address space 0 local base address (remap) for pci to local address space 0 bus region descriptors for pci to local accesses range for pci to local expansion rom local base address (remap) for pci to local expansion rom pci base address to local address space 0 bus region descriptors for pci to local accesses pci base address to local expansion rom 1 initialize local direct access registers initialize pci base address registers pci address space pci base address local bus access local memory local base address range pci bus access local bus hardware characteristics 3 4 2 figure 3 - 6 . direct slave access of local bus
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 21 version 0.93 example 1? a 1 mb local address space 12300000h through 123fffffh is accessible from the pci bus at pci addresses 78900000h through 789fffffh. a. local initialization software sets the range and local base address registers as follows: range? fff00000h (1 mb, decode the upper 12 pci address bits) local base address (remap)? 123xxxxxh (local base address for pci to local accesses) (bit 0, the space enable bit, must be set to 1 to be recognized by the host) b. pci initialization software writes all ones to the pci base address, then reads it back again. the pci 9080 returns a value fff00000h. the pci software then writes to the pci base address register pci base address? 789xxxxxh (pci base address for access to local address space) for pci direct access to the local bus, the pci 9080 has a 32 lword (128 byte) write fifo and a 16 lword (64 byte) read fifo. the fifos enable the local bus to operate independently of the pci bus. the pci 9080 can be programmed to return a retry response or to throttle trdy# for any pci bus transaction attempting to write to the pci 9080 local bus when the fifo is full. for pci read transactions from the pci 9080 local bus, the pci 9080 holds off trdy# while gathering the local bus lword to be returned. for read accesses mapped to the pci memory space, the pci 9080 prefetches up to 16 lwords (has continuous prefetch mode) from the local bus. unused read data is flushed from the fifo. for read accesses mapped to the pci i/o space, the pci 9080 does not prefetch read data. rather, it breaks each read of the burst cycle into a single address/data cycle on the local bus. the period of time the pci 9080 holds off trdy# can be programmed, target retry timer, in the local bus region descriptor register. the pci 9080 issues a retry to the pci bus transaction master when the programmed time period expires. this occurs when the pci 9080 cannot gain control of the local bus and return trdy# within the programmed time period. 3. 5 .2 .2 deadlock and breqo a deadlock situation can occur when a master on the pci bus wants to access the pci 9080 local bus at the same time a master on the local pci 9080 bus wants to access the pci bus. two types of deadlock situations can occur: a. partial deadlock ? a master on the local bus is performing a direct bus master access to a pci bus device other than the pci bus device that is concurrently trying to access the local bus. b. full deadlock ? a master on the local bus is performing a direct bus master access to the same pci bus device that is concurrently trying to access the local bus. this applies only to direct (?pass through?) master and slave accesses through the pci 9080. deadlock will not occur in transfers through the pci 9080 dma controller or the mailboxes. for partial deadlock, the pci access to the local bus times out (the target retry timer, which is programmable through the local bus region description for pci to local accesses register) and the pci 9080 responds with a pci retry. the pci specification requires that a pci master release its request for the pci bus (de-asserts req#) for a minimum of two pci clocks after receiving a retry. this allows the pci bus arbiter to grant the pci bus to the pci 9080 so that it can complete its direct master access and free up the local bus. possible solutions are described below for cases in which the pci bus arbiter does not function as described (pci bus architecture dependent), waiting for a time-out is undesirable, or a full deadlock condition exists. for full deadlock, the only solution is to back off the local master. 3. 5 .2 .2 .1 backoff the pci 9080 contains a pin (breqo) that indicates a possible deadlock condition exists. the pci 9080 starts the breqo timer (can be reprogrammed, using the registers) when it detects the following conditions: a. a master on the local bus is performing a direct bus master access to the pci bus. b. a master on the pci bus is trying to access memory or an i/o device on the local bus and is not gaining access (that is, has not received lholda). if the timer expires and the pci 9080 still has not received lholda, the pci 9080 asserts breqo.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 22 version 0.93 external bus logic can use this as a signal to perform backoff. a backoff cycle is device/bus architecture dependent. external logic (arbiter) can assert the necessary signals to cause the local master to release the local bus (backoff). after backing off the local master, it can grant the bus to the pci 9080 (by asserting lholda). the pci 9080 considers the direct master bus access terminated when it detects lholda. it then proceeds with the pci direct slave access. when this access is complete and the pci 9080 releases the local bus, the external logic can release backoff and the local master can resume the cycle that was interrupted by the backoff cycle. the write fifo of the pci 9080 retains all the data it has acknowledged (that is, the last data for which readyo# was asserted and lholda was not asserted). the read fifo of the pci 9080 retains all the data read from the pci bus (single or burst read) and returns the data to the local master when the local master returns with the same request as before the backoff. after the backoff condition ends, the local master restarts the last cycle with ads#. for writes, the data following this ads# should be the data that was not acknowledged by the pci 9080 prior to the backoff cycle (that is, the last data for which readyo# was not asserted or lholda was asserted). (the pci 9080 will not assert the readyo# signal when the local backoff is acknowledged, "assert lholda".) 3. 5 .2 .2 .2 software/hardware solution for systems without backoff capability for adapters that do not support backoff, a possible deadlock solution is as follows: pci host software, external local bus hardware, general purpose output usero and general purpose input (useri) can be used by pci host software to prevent deadlock. usero can be set to request that the external arbiter not grant the bus to any local bus master except the pci 9080. a status output from the local arbiter can be connected to general purpose input useri to indicate that no local bus master owns the local bus. the input can be read by the pci host to determine that no local bus master currently owns the local bus. the pci host can then do a direct slave access. when the host is done, it clears usero. for devices that support preempt, usero can be used to preempt the current bus master device. the current local bus master device completes its current cycle and gives up the local bus (de-asserts lhold). 3. 5 .2 .2 .3 software solutions to deadlock pci host software and local bus software can use a combination of mailbox registers, doorbell registers, interrupts, direct local to pci accesses and direct pci to local accesses to avoid deadlock. 3. 5 .2 .3 direct slave lock the pci 9080 supports direct pci to local bus exclusive accesses (locked atomic operations). a pci locked operation to local bus results in the entire address space 0, space 1 and expansion rom space being locked until they are released by the pci bus master. the pci 9080 asserts llocko# during the first clock of an atomic operation (address cycle) and de-asserts it a minimum of one clock, following the last bus access for the atomic operation. llocko# is de-asserted after the pci 9080 detects pci frame# and pci lock# de- asserted at the same time. refer to the timing diagrams in section 8 , ? timing diagrams .? locked operations are enabled or disabled with the local bus region descriptor for pci to local accesses register. it is the responsibility of external arbitration logic to monitor the llocko# pin and enforce the meaning for an atomic operation. for example, if a local master initiates a locked operation, the local arbiter may choose to not grant use of the local bus to other masters until the locked operation is complete. 3. 5 .3 direct slave priority direct slave accesses have higher priority than dma accesses. direct slave accesses preempt dma transfers. when the pci 9080 dma controller owns the local bus, its lhold output and lholda input are asserted and its ldshold output is de-asserted. when a direct slave access occurs, the pci 9080 gives up the local bus within two lword transfers by de-asserting lhold and floating its local bus outputs. after the pci 9080 samples its lholda input de-asserted, it requests the local bus for a direct slave transfer by asserting lhold and ldshold. when the pci 9080 receives lholda, it drives the bus and performs the direct slave transfer. upon completion of the direct slave transfer, the pci 9080 gives up the local bus by de-asserting both lhold and ldshold and floating its local bus outputs. after the pci 9080 samples its lholda de-asserted and its local pause timer is zero, it requests the local bus for a dma transfer by re-asserting lhold. when it receives lholda, it drives the bus and continues with the dma transfer.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 23 version 0.93 3. 6 dma operation the pci 9080 supports two independent dma channels capable of transferring data from the local bus to the pci bus or from the pci bus to the local bus. each channel consists of a dma controller and a bi-directional fifo. both channels support chaining and non-chaining transfers, demand mode dma, and end of transfer (eot) pins. 3. 6 .1 non-chaining mode dma the host processor or the local processor sets the local address, pci address, transfer count and transfer direction. the host or local processor then sets a control bit to initiate the transfer. the pci 9080 will arbitrate the pci and local buses and transfer data. once the transfer is complete, the pci 9080 generates an interrupt either to the local processor or the pci host (programmable). the dma done bit in the internal dma register can be pooled to indicate the status of dma transfer. dma registers are accessible from the pci bus and local bus. (refer to figure 3-7 .) pci host memory memory block to transfer memory block to transfer local memory mode register pci address register local address register transfer size (byte count) register descriptor pointer register (set direction only) command/status register set dma mode to non-chaining set up transfer parameters set the enable and go bits in the dma command/status register to initiate dma transfer figure 3 - 7 . non-chaining dma initialization
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 24 version 0.93 3. 6 .2 chaining mode dma chaining dma operates as follows: the host processor or the local processor sets up descriptor blocks in local or host memory that are composed of a pci address, local address, transfer count, transfer direction and address of the next descriptor block. the host or local processor then sets up the address of the initial descriptor block in the descriptor pointer register of the pci 9080 and initiates the transfer by setting a control bit. the pci 9080 loads the first descriptor block and initiates the data transfer. the pci 9080 continues to load descriptor blocks and transfer data until it detects the end of chain bit is set in the next descriptor pointer register. the pci 9080 can be programmed to interrupt the local processor by setting the "interrupt after terminal count" bit or pci host upon completion of each block transfer and after all block transfers are complete (done) (refer to figure 3-8 ). if the chaining descriptors are located in local memory, the dma controller can be programmed to clear the transfer size at the completion of each dma. (refer to "dma clear count mode"). note: the dma descriptor can be on the local memory or pci memory, or both (first descriptor on local memory, and second descriptor on pci memory). set up first descriptor pointer register (first only requires descriptor pointer) first pci address first memory block to transfer first memory block to transfer next memory block to transfer next memory block to transfer local or host memory pci host memory mode register set dma mode to chaining command/status register set the enable and go bits in the dma command/status register to initate dma transfer first local address first transfer size (byte count) next descriptor pointer descriptor pointer register pci address local address transfer size (byte count) next descriptor pointer end of chain specification bit figure 3 - 8 . chaining dma initialization
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 25 version 0.93 3. 6 .3 dma data transfers the pci 9080 dma controller can be programmed to transfer data from the local bus side to the pci bus side or from the pci bus side to the local bus side. refer to figure 3-9 and figure 3-12 for a description of the operation. 3. 6 .3 .1 local to pci bus dma transfer local bus arbitration: pci bus arbitration: releases control of the pci bus whenever the fifo becomes empty, the pci latency timer expires and pci grant de-asserts, a pci disconnect is received, or a direct local to pci request is pending. rearbitrates for control of the pci bus when the preprogrammed number of entries in the fifo becomes available, or after two pci clocks if a disconnect was received. pci arbitration local bus arbitration fifo unload fifo with pci bus write cycles load fifo with local bus read cycles gnt# req# lholda lhold chaining mode descriptors: at the start of each block transfer, in chaining mode only, loads the dma registers by reading four lwords from the address specified in the next descriptor pointer register. chaining mode descriptors: at the start of each block transfer, in chaining mode only, loads the dma registers by reading four lwords from the address specified in the next descriptor pointer register. local interrupt generation (programmable) done chaining: terminal count for current descriptor pci interrupt generation (programmable) done chaining: terminal count for current descriptor releases control of the local bus whenever the fifo becomes full, terminal count is reached, the local latency timer expires, the breq input is asserted, or a direct pci to local bus request is pending. rearbitrates for control of the local bus when the preprogrammed number of empty entries in the fifo becomes available. if the latency timer has expired, waits until the pause timer expires. figure 3 - 9 . local to pci bus dma data transfer operation
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 26 version 0.93 3. 6 .3 .2 pci to local bus dma transfer local bus arbitration: pci bus arbitration: releases control of the pci bus whenever the fifo becomes full, terminal count is reached, the pci latency timer expires and pci grant de-asserts, a pci disconnect is received, or a direct local to pci request is pending. rearbitrates for control of the pci bus when the preprogrammed number of empty entries in the fifo becomes available, or after two pci clocks if a disconnect was received. pci arbitration local bus arbitration fifo load fifo with pci bus read cycles unload fifo with local bus write cycles local interrupt generation (programmable) done chaining: terminal count for current descriptor pci interrupt generation (programmable) done chaining: terminal count for current descriptor gnt# req# lholda lhold releases control of the local bus whenever the fifo becomes empty, the local latency timer expires, the breq input is asserted, or a direct pci to local bus request is pending. rearbitrates for control of the local bus when the preprogrammed number of entries becomes available in the fifo or the pci terminal count is reached. if the latency timer has expired, waits until the pause timer expires. at the start of each block transfer, in chaining mode only, loads the dma registers by reading four lwords from the address specified in the next descriptor pointer register. chaining mode descriptors: at the start of each block transfer, in chaining mode only, loads the dma registers by reading four lwords from the address specified in the next descriptor pointer register. chaining mode descriptors: figure 3 - 10 . pci to local bus dma data transfer operation 3. 6 .3 .3 unaligned transfers for unaligned local to pci transfers, the pci 9080 reads a partial lword from the local bus. it then continues to read lwords from the local bus. the lwords are assembled, aligned to the pci bus address and loaded into the fifo. for pci to local transfers, lwords are read from the pci bus and loaded into the fifo. on the local side, the lwords are assembled from the fifo, aligned to the local bus address and written to the local bus. on both the local and pci buses, the byte enables for writes determine la0 and la1 for the start of a transfer. for the last transfer, the byte enables specify the bytes to be written. all reads are lwords. 3. 6 .4 demand mode dma a bit in the dma configuration registers specifies that the channel operates in demand mode. in demand mode, the user sets up the configuration registers of the dma controller and initiates a transfer. the dma controller transfers data when it asserts the dreq[1:0]# input of the dma channel. the dma controller then asserts dack[1:0]# to indicate that the current local bus transfer is in response to the dreq[1:0]# input. the dma controller continues to transfer data until it reaches the transfer count or until dreq[1:0]# is de-asserted. the minimum transfer size per dreq[1:0]# input is one lword (32 bits). this may result in multiple transfers for an 8- or 16 -bit bus. refer to the timing diagrams in section 8 , ? timing diagrams .? 3. 6 .5 dma priority dma channel 0 priority, dma channel 1 priority, or rotating priority can be specified in the dma arbitration register.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 27 version 0.93 3. 6 .6 dma arbitration the pci 9080 dma controller releases control of the local bus (de-asserts lhold) when one of the following occurs: its fifos are full in a local to pci transfer its fifos are empty in a pci to local transfer the local bus latency timer expires (if enabled) the breq input is asserted (breq can be enabled or disabled, or gated with a latency timer before the pci 9080 gives up the local bus) a direct slave access is pending eot input is received (if enabled) the dma controller releases control of the pci bus when one of the following occurs: the fifos are full or empty when the pci latency timer expires and it loses the pci grant signal it receives a target disconnect response it de-asserts its pci bus request (req#) for a minimum of two pci clocks. 3. 6 .6 .1 end of transfer (eot0# or eot1#) input when asserted, current dma transfer terminates, regardless of the transfer size. local transfers will terminate after the current cycle. pci transfer will terminate immediately if transfer is from pci to local. if the transfer is from local to pci, the pci 9080 finishes transferring all data in the internal fifo and terminates the dma transfer 3. 6 .6 .2 local latency and pause timers a local bus latency timer and local bus pause timer are programmable with the dma arbitration register. if the local latency timer expires, the pci 9080 completes the current lword transfer and releases lhold. after its programmable pause timer expires, it reasserts lhold. when it receives lholda, it continues the transfer. the pci bus transfer continues until the fifo is empty for a local to pci transfer or until it is full for a pci to local transfer. 3. 7 breq input when the pci 9080 owns the local bus, both its lhold output and lholda input are asserted. when the pci 9080 samples breq asserted during a dma transfer or a direct slave write transfer, it gives up the local bus within two lword transfers by de -asserting lhold and floating its local bus outputs if breq is gated or disabled, or if gating is enabled and the local bus latency timer expires. the local arbiter can now grant the local bus to another local master. after the pci 9080 samples that its lholda is de-asserted and its local pause timer is zero, it re-asserts lhold to request the local bus. when the pci 9080 receives lholda, it drives the bus and continues from where it left off. 3. 8 doorbell registers there are two 32 bit doorbell interrupt/status registers in the pci 9080. one is assigned to the pci bus interface and while the other is assigned to the local bus interface. the local processor can generate a pci bus interrupt by writing any number other than all zeroes to the pci to local doorbell register. a pci host can generate a local bus interrupt by writing any number other than all zeroes to the local to pci doorbell register. 3. 9 mailbox registers there are eight 32 bit mailbox registers in the pci 9080 that can be written to and read from both buses. these registers can be used to pass command and status information directly between local and pci bus devices. a local interrupt can be generated, if enabled, when the pci host writes to one of the first four mailbox registers.
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 28 version 0.93 3. 10 interrupts linto# dma ch 0 done dma ch 1 done doorbells mailboxes bist messaging queue x9 x4 [17] [7] [23] x2 or x3 x8 x6 or x7 or dma ch 1 terminal count lserr# master abort 256 retrys target abort parity error messaging queue doorbells master abort 256 retrys target abort linti# messaging queue [1] [0] x1 or [12] or [9] [10] [11] or [12] or x5 inta# dma ch 0 done dma ch 0 terminal count x4 x2 or x3 dma ch 1 done x8 x6 or x7 dma ch 1 terminal count dma ch 0 terminal count [8] [16] the # represent the bit # of register (loc [e8h]) x1 = bit [7:6] of register (loc [168h]) x2 = bit [10] of register (loc [100h]) x3 = bit [2] of register (loc [e110h]) x4 = bit [18] of register (loc [e8h]) & bit [17] of register (loc [100h]) x5 = bit [5:4] of register (loc [168h]) x7 = bit [2] of register (loc [124h]) x6 = bit [10] of register (loc [114h]) x8 = bit [19] of register (loc [e8h]) & bit [17] of register (loc [114h]) x9 = bit [3] of register (loc [b0h]) & bit [3] of register (loc [b4h]) for x4 & x8, if the bit [17]='0' then linto# is generated and if the bit [17]='1' then inta# is generated. figure 3 - 11 . interrupt and error sources 3. 10 .1 pci interrupts (inta#) a pci 9080 pci interrupt (inta#) can be generated by one of the following: local to pci doorbell register local interrupt input master/target abort status condition dma ch 0/ch 1 done dma ch 0/ch 1 terminal count reached messaging outbound post queue not empty inta#, or individual sources of an interrupt, can be enabled or disabled with the pci 9080 interrupt control/status register. the interrupt control/status register also provides interrupt status for each source of the interrupt. the pci 9080 pci bus interrupt is level output. an interrupt can be cleared by disabling an interrupt enable bit or clearing the cause(s) of the interrupt. 3. 10 .1 .1 local interrupt input asserting local bus input pin linti# can generate a pci bus interrupt. the pci host processor can read the pci 9080 interrupt control/status register to determine that an interrupt is pending due to the linti# pin being asserted. the interrupt remains asserted as long as the linti# pin is asserted and the local interrupt input is enabled. adapter specific action can be taken by the pci host processor to cause the local bus to release linti#. 3. 10 .1 .2 master/target abort interrupt the pci 9080 sets the master abort or target abort status bit in the pci configuration register when it detects a master or target abort. these status bits cause pci inta# to be asserted if interrupts are enabled. the interrupt remains asserted as long as the master or target abort bits remain set in the pci configuration status register and master/target abort interrupt is enabled. use a pci type 0 configuration access or a
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 29 version 0.93 local access to clear the master abort and target abort interrupt bits in the pci configuration status register. bits [26:24] of the interrupt control/status register are latched at the time of a target abort interrupt or a master abort interrupt. they provide information as to who was master when an abort occurred. the pci 9080 updates these bits whenever an abort occurs. 3. 10 .2 local interrupts ( linto#) a pci 9080 local interrupt ( linto#) can be generated by one of the following: the pci to local doorbell/mailboxes register access a pci bist interrupt, the dma done interrupt the dma terminal count is reached the dma abort interrupt or messaging outbound post queue not empty linto#, or individual sources of an interrupt, can be enabled or disabled with the pci 9080 interrupt control/status register. the interrupt control/status register also provides interrupt status for each source of the interrupt. the pci 9080 local interrupt is a level output. an interrupt can be cleared by disabling the interrupt enable bit of a source or by clearing the cause of an interrupt. 3. 10 .2 .1 local to pci doorbell interrupt a local bus master can generate a pci bus interrupt by writing to the local to pci doorbell register. the pci host processor can then read the pci 9080 interrupt control/status register to determine that a doorbell interrupt is pending. it can then read the pci 9080 local to pci doorbell register. each bit in the local to pci doorbell register is individually controlled. bits in the doorbell register can only be set by the local side. from the local side, writing a 1 to any bit position sets that bit and writing a 0 to a bit position has no effect. bits in the local to pci doorbell register can only be cleared from the pci side. from the pci side, writing a 1 to any bit position clears that bit and writing a 0 to a bit position has no effect. the interrupt remains asserted as long as any of the local to pci doorbell register bits are set and the pci doorbell interrupt is enabled. to prevent race conditions when the pci bus is accessing the doorbell register (or any configuration register), the pci 9080 automatically de-asserts readyo# to prevent local bus accesses. 3. 10 .2 .2 pci to local doorbell interrupt a pci bus master can generate a local bus interrupt by writing to the pci to local doorbell register. the local processor can then read the pci 9080 interrupt control/status register to determine that a doorbell interrupt is pending. it can then read the pci 9080 pci to local doorbell register. each bit in the pci to local doorbell register is individually controlled. bits in the doorbell register can only be set by the pci side. from the pci side, writing a 1 to any bit position sets that bit and writing a 0 to a bit position has no effect. bits in the pci to local doorbell register can only be cleared from the local side. from the local side, writing a 1 to any bit position clears that bit and writing a 0 to a bit position has no effect. note: if the local side cannot clear the doorbell interrupt, do not use the pci to local doorbell register. the interrupt remains asserted as long any of the pci to local doorbell register bits are set and the local doorbell interrupt is enabled. to prevent race conditions when the local bus is accessing the doorbell register (or any configuration register), the pci 9080 automatically issues a retry to the pci bus. 3. 10 .2 .3 built in self test interrupt (bist) a pci bus master can generate a local bus interrupt by performing a pci type 0 configura tion write to a bit in the pci bist register. the local processor can then read the pci 9080 interrupt control/status register to determine that a bist interrupt is pending. the interrupt remains asserted as long as the bit is set and the bist interrupt is enabled. the local bus then resets the bit when bist is complete. pci host software may fail the device if the bit is not reset after 2 seconds. note: the pci 9080 does not have internal bist. 3. 10 .2 .4 dma channel 0/1 interrupts a dma channel can generate a pci or local bus interrupt when done (transfer complete) or after a transfer is complete for a descriptor in chaining mode. a bit in the dma mode register determines whether to generate a pci or local interrupt. the local or pci processor can then read the pci 9080 interrupt control/status register to determine whether a dma
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 30 version 0.93 channel interrupt is pending. a done status bit in the control/status register can be used to determine whether the interrupt is a done interrupt the result of a transfer for a descriptor in a chain that is not yet complete the mode register of a channel enables a done interrupt. in chaining mode, a bit in the next descriptor pointer register of the channel (loaded from local memory) specifies whether to generate an interrupt at the end of the transfer for the current descriptor. a dma channel interrupt is cleared by writing a 1 to the clear interrupt bit in the dma command/status register. 3. 10 .3 pci serr# (pci nmi) the pci 9080 generates an serr# pulse if parity checking is enabled in the pci command register and it detects an address parity error or the generate serr# bit in the interrupt control/status register is 0 and a 1 is written. the serr# output can be enabled or disabled with the pci command register. 3. 10 .4 local lserr# (local nmi) the lserr# interrupt output is asserted if the pci bus target abort or master abort status bit is set in the pci status configuration register, a parity error status bit is set in the pci status configuration register, or the messaging outbound free queue overflows. if parity error checking is enabled in the pci command register, the pci 9080 sets the master detected parity error status bit in the pci status register if it detects one of the following: a parity error during a pci 9080 master read the pci bus signal perr# being asserted during a pci 9080 master write the pci 9080 sets a parity error bit in the pci status register if it detects a data parity error during a pci 9080 master read, a data parity error during a slave write access to the pci 9080 or an address parity error. the pci 9080 interrupt control/status register can be used to individually enable or disable lserr# for an abort or parity error. lserr# is a level output that remains asserted as long as the abort or parity error status bits are set. 3. 11 i 2 0 compatible message unit the messaging unit supplies two paths for messages, two inbound fifos to receive messages from the primary pci bus and two outbound fifos to pass messages to the primary pci bus. refer to the i 2 o architecture specification v1.5 for details. figure 3-12 and figure 3-13 illustrate information about the i 2 0 architecture. o u t b o u n d q u e u e i n b o u n d q u e u e m e s s a g e f r a m e s m e s s a g e f r a m e s i o p m u s t h a v e : c p u m e m o r y m e s s a g i n g u n i t n o h a r d w a r e c h a n g e s a r e r e q u i r e d o n h o s t s i d e h o s t c p u p c i b u s i o p c p u i o p l o c a l m e m o r y p h y s i c a l s y s t e m m e m o r y i o p = i n t e l l i g e n t i / o p r o c e s s o r figure 3 - 12 . i 2 o system architecture c u r r e n t a r c h i t e c t u r e i o a r c h i t e c t u r e 2 o s s p e c i f i c m o d u l e h a r d w a r e d e v i c e m o d u l e h a r d w a r e h d m o s m m e s s a g i n g l a y e r h a r d w a r e o s m = o p e r a t i n g s y s t e m m a s t e r h d m = h a r d w a r e d e v i c e m o d u l e figure 3 - 13 . i 2 o software architecture 3. 11 .1 inbound messages inbound messages reside in a pool of message frames (minimum 64-byte frames) allocated in shared local bus (iop) memory. the inbound message queue is comprised of a pair of rotating fifos implemented in local memory. the inbound free list fifo holds the message frame addresses (mfa) of available message frames in local memory. the inbound post list fifo holds the mfa of all currently-posted messages. the inbound circular fifos are accessed by external pci agents through the inbound queue port location in the pci address space. the inbound queue port, when
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 31 version 0.93 read by an external pci agent, returns the inbound free list fifo mfa. an external pci agent places a message frame into the inbound post list fifo by writing its mfa to the inbound queue port location. 3. 11 .2 outbound messages outbound messages reside in a pool of message frames (minimum 64-byte frames) allocated in shared pci bus (host system) memory. the outbound message queue is comprised of a pair of rotating fifos implemented in local memory. the outbound free list fifo holds the message frame addresses (mfa) of available message frames in system memory. the outbound post list fifo holds the mfa of all currently posted messages. the outbound circular fifos are accessed by external pci agents through the outbound queue port location in the pci address space. the outbound queue port, when read by an external pci agent, returns the outbound post list fifo mfa. an external pci agent places free message frames into the outbound free list fifo by writing the free mfa into the outbound queue port location. memory for the circular fifos themselves must be allocated in local (iop) memory. the queues base address is contained in the queue base address register (qbar). each fifo entry is a 32 bit data value. each read and write of the queue must be a single 32 -bit access. the circular fifos range in size from 4k entries to 64k entries. all four fifos must be the same size and contiguous. therefore, the total amount of local memory needed for circular fifos ranges from 64 kb to 1 mb. fifo size is specified in the messaging queue configuration register (mqcr). the starting address of each fifo is based on the queue base address and the fifo size, as listed in table 3-4 . table 3 - 4 . queue starting address fifo starting address inbound free list qbar inbound post list qbar + (1 * fifo size) outbound post list qbar + (2 * fifo size) outbound free list qbar + (3 * fifo size) 3. 11 .3 i 2 o pointer management the fifos always reside in shared local (iop) memory and are allocated and initialized by the iop. before enabling i 2 o (mqcr register bit 0 set to 1) the local processor must initialize the inbound post and free head pointer registers, the inbound post and free tail pointer registers, the outbound post and free head pointer registers, and the outbound post and free tail pointer registers with the initial offset according to the fifo size configured. the messaging unit will automatically add the queue base address to the offset in each head and tail pointer register. the software can then enable i 2 o. after initialization, the local software should not write to the pointers managed by the mu hardware. the empty flags are set if the queues are disabled (mqcr bit 0 = 0) and the head and tail pointers are equal. this occurs independently of how the head and tail pointers are set. an empty flag is cleared, signifying not empty, only if the queues are enabled and the pointers become not equal. if an empty flag is cleared and the queues are enabled, the empty flag will only be set if the tail pointer is incremented and the head and tail pointers become equal. full flags are always cleared when the queues are disabled or the head and tail pointers are not equal. a full flag is set when the queues are enabled, the head pointer is incremented, and the head and tail pointers become equal. each circular fifo has a head pointer and a tail pointer, which are offsets from the queue base address. writes to a fifo occur at the head of the fifo and reads occur from the tail. the head and tail pointers are incremented by either the local processor or the mu hardware. the unit that writes to the fifo also maintains the pointer. the pointers are incremented after the fifo access. both pointers wrap around to the first address of the circular fifo when they reach the fifo size, so that the head and tail pointers ?chase? each other around and around in the circular fifo. the mu will wrap the pointers automatically for the pointers that it maintains. iop software must wrap the pointers that it maintains. whenever they are equal, the fifo is empty. to prevent overflow conditions, i 2 o specifies that the number of message frames allocated should be less than or equal to the number of entries in a fifo. (refer to figure 3-14 for additional information.) each inbound mfa is specified by i 2 o as the offset from the start of shared local (iop) memory region 0 to the start of the message frame. each outbound mfa is specified as the offset from host memory location 0x00000000h to the start of the message frame in shared host memory. since the mfa is an actual address, the message frames themselves do not need
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 32 version 0.93 to be contiguous. the iop allocates and initializes inbound message frames in shared iop memory using any suitable memory allocation technique. the host allocates and initializes outbound message frames in shared host memory using any suitable memory allocation technique. message frames are a minimum of 64 bytes in length. i 2 o uses a ?push? (write preferred) memory model. that means that the iop will write messages and data to the shared host memory, and the host will write messages and data to shared iop memory. software should make use of burst and dma transfers whenever possible to ensure efficient use of the pci bus for message passing. additional information on message passing implementation may be found in the i 2 o architecture specification v1.5 . 3. 11 .4 inbound free list fifo the local processor allocates inbound message frames in its shared memory and can place the address of a free (available) message frame into the inbound free list fifo by writing its mfa into the fifo location pointed to by the queue base register + inbound free head pointer register. the local processor must then increment the inbound free head pointer register. a pci master (host or another iop) can obtain the mfa of a free message frame by reading the inbound queue port address (40h of the first pci memory base address register). if the fifo is empty (no free inbound message frames are currently available, head and tail pointers are equal), the mu returns a value of -1 (ffffffffh). if the fifo is not empty (he ad and tail pointers are not equal), the mu reads the mfa pointed to by the queue base register + inbound free tail pointer register, returns its value and increments the inbound free tail pointer register. if the inbound free queue is not empty, and queue prefetching is enabled (qsr register bit 3), then the next entry in the fifo will be read from the local bus into a prefetch register. the data for the next pci read from this queue will then be provided by the prefetch register, thus reducing the number of pci wait states..
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 33 version 0.93 outbound post list fifo head pointer tail pointer incremented by local processor incremented by pci 9080 hardware inbound post list fifo head pointer tail pointer incremented by pci 9080 hardware incremented by local processor inbound free list fifo head pointer tail pointer incremented by local processor incremented by pci 9080 hardware outbound free list fifo head pointer tail pointer incremented by pci 9080 hardware incremented by local processor outbound queue port write read external pci agent inbound queue port write read external pci agent local processor write read local processor write read low address local memory high address local memory outbound queue inbound queue figure 3 - 14 . circular fifo operation
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 34 version 0.93 3. 11 .5 inbound post list fifo a pci master (host or another iop) can write a message into an available message frame in shared local (iop) memory. it can then post that message by writing the message frame address (mfa) to the inbound queue port address (40h of the first pci memory base address register). when the port is written, the mu writes the mfa to the inbound post list fifo location pointed to by the queue base register + fifo size + inbound post head pointer register. after the mu writes the mfa to the inbound post list fifo, it increments the inbound post head pointer register. the inbound post tail pointer register points to the inbound post list fifo location which holds the mfa of the oldest posted message. the tail pointer is maintained by the local processor. after a local processor reads the oldest mfa, it can remove the mfa from the inbound post list fifo by incrementing the inbound post tail pointer register. the pci 9080 generates a local interrupt when the inbound post list fifo is not empty. the inbound post list fifo interrupt bit in the queue status/control register (qsr) indicates interrupt status. the interrupt clears when the inbound post list fifo is empty. the interrupt can be masked by the inbound post list fifo interrupt mask bit. to prevent race conditions from the time the pci write transaction is received until the data is written in local memory and the inbound post head pointer register is incremented, any pci direct slave access to the pci 9080 is issued a retry. 3. 11 .6 outbound post list fifo a local master (iop) can write a message into an available message frame in shared host memory. it can then post that message by writing the message frame address (mfa) to the outbound post list fifo location pointed to by the queue base register + outbound post head pointer register + (2 * fifo size). the local processor should then increment the outbound post head pointer register. a pci master can obtain the mfa of the oldest posted message by reading the outbound queue port address (44h of the first pci memory base address register). if the fifo is empty (no more outbound messages are posted, head and tail pointers are equal), the mu returns a value of -1 (ffffffffh). if the outbound post list fifo is not empty (head and tail pointers are not equal), the mu reads the mfa pointed to by the queue base register + (2 * fifo size) + outbound post tail pointer register, returns its value and increments the outbound post tail pointer register. the pci 9080 generates a pci interrupt when the outbound post head pointer register is not equal to the outbound post tail pointer register. the outbound post list fifo interrupt bit of the outbound post list fifo interrupt status (oplfis) register indicates interrupt status. when the pointers become equal, both the interrupt and the outbound post list fifo interrupt bit are automatically cleared. the pointers become equal when a pci master (host or another iop) reads enough fifo entries to empty the fifo. the interrupt can be masked by the outbound post list fifo interrupt mask (oplfim) register). 3. 11 .7 outbound free list fifo a pci master (host or another iop) allocates outbound message frames in its shared memory and can place the address of a free (available) message frame into the outbound free list fifo by writing the message frame address (mfa) to the outbound queue port address (44h of the first pci memory base address register). when the port is written, the mu writes the mfa to the outbound free list fifo location pointed to by the queue base register + (3 * fifo size) + outbound free head pointer register. after the mu writes the mfa to the outbound free list fifo, it increments the outbound free head pointer register. when the iop needs a free outbound message frame, it must first check whether there are any free frames available. if the outbound free list fifo is empty (outbound free head and tail pointers are equal), the iop must wait for the host to place additional outbound free message frames in the outbound free list fifo. if the outbound free list fifo is not empty (head and tail pointers are not equal), the iop can obtain the mfa of the oldest free outbound message frame by reading the location pointed to by the queue base register + (3 * fifo size) + outbound free tail pointer register. after the iop reads the mfa, it must increment the outbound free tail pointer register. to prevent overflow conditions, i 2 o specifies that the number of message frames allocated should be less than or equal to the number of entries in a fifo. the mu will also check for overflows of the outbound free list fifo when the head pointer is incremented and becomes equal to the tail pointer, the outbound free list fifo is full, and the mu generates a local lserr (nmi)
section 3 pci 9080 functional description ? ? plx technology, inc., 1997 page 35 version 0.93 interrupt. the interrupt is recorded in the queue status control (qsr) register. from the time that the pci write transaction is received until the data is written into local memory and the outbound free head pointer register is incremented, any pci direct slave access to the pci 9080 is issued a retry. table 3 - 5 . circular fifo summary fifo name pci port generate pci interrupt? generate local interrupt head pointer maintained by tail pointer maintained by inbound free list fifo inbound queue port (host read) no no local processor mu hardware inbound post list fifo inbound queue port (host write) no yes, when port is written mu hardware local processor outbound post list fifo outbound queue port (host read) yes, when fifo is not empty no local processor mu hardware outbound free list fifo outbound queue port (host write) no yes, (lserr) when fifo full mu hardware local processor
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 36 version 0.93 4. registers 4. 1 new register definitions summary refer to the descriptions in the following sections for a full explanation. table 4 - 1 . new registers definitions summary pci offset local offset register bits description 08h or ach 88h or 12ch larbr 23 add pcireqmode output. 28 cached read mode. 18h 98h lbrd0 15 single read mode removed. 28h a8h dmpbam 10 extend almost full flag to five bits (fifth bit not contiguous). 11 add cdmpflimit output; do not prefetch past 4 k boundary for dm. 12, 3 direct master read prefetch size control. 13 i/o remap select. 15:14 direct master write delay. 30h b0h oplfis all new outbound post list fifo interrupt status register. 34h b4h oplfim all new outbound post list fifo interrupt mask register. 40h n/a iqp all new inbound queue port register. 44h n/a oqp all new outbound queue port register. 68h e8h intcsr 4 move dma0intsel output to dmamode0. change to reserved. 5 move dma1intsel output to dmamode1. change to reserved. 3 mailbox interrupt enable on sd, not on 9060. 31:28 mailbox interrupts on sd, not on 9060. 80h 100h dmamode0 16 clear byte count in chaining descriptor. 17 add c0_intsel output. 0=local int., 1=pci int. 94h 114h dmamode1 16 clear byte count in chaining descriptor. 17 add c1_intsel output. 0=local int., 1=pci int. c0h 140h mqcr all new messaging queue configuration register. c4h 144h qbar all new queue base address register. c8h 148h ifhpr all new inbound free head pointer. cch 14ch iftpr all new inbound free tail pointer. d0h 150h iphpr all new inbound post head pointer. d4h 154h iptpr all new inbound post tail pointer. d8h 158h ofhpr all new outbound free head pointer. dch 15ch oftpr all new outbound free tail pointer. e0h 160h ophpr all new outbound post head pointer. e4h 164h optpr all new outbound post tail pointer. e8h 168h qsr all new i 2 o queue status register. f0h 170h las1rr all new local address space 1 range register for pci to local. f4h 174h las1ba all new local address space 1 local base address (remap). f8h 178h lbrd1 all new local address space 1 bus region descriptor.
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 37 version 0.93 4. 1 .1 register differences between pci 9080 and pci 9060, pci 9060es, and pci 9060sd table 4 - 2 . register differences between pci 9080 and pci 9060 register pci/local offset bits description pciidr 00/00 31:16 default changed from 9060 to 9080 pcicr 04/04 4 memory write and invalidate now supported pcisr 06/06 6 user definable bit added pciclsr 0c/0c 7:0 cache line size is now used for memory write and invalidate pcibar0 10/10 8:6 register bank size changed from 128 to 256 pcibar1 14/14 8:6 register bank size changed from 128 to 256 pcibar3 1c/1c 31:0 base address register for local address space 1 pcisvid 2c/2c 15:0 subsystem vendor id register pcisid 2e/2e 15:0 subsystem id register larbr 08, ac/88, 12c 31:0 local/dma arbitration register now accessible from pci bus larbr 08, ac/88, 12c 21 local bus direct slave give up bus mode larbr 08, ac/88, 12c 22 direct slave lock enable larbr 08, ac/88, 12c 23 pci request mode larbr 08, ac/88, 12c 24 pci rev 2.1 mode larbr 08, ac/88, 12c 25 pci read/no write mode larbr 08, ac/88, 12c 26 pci read with write flush mode larbr 08, ac/88, 12 c 27 get the local bus latency timer with breq larbr 08, ac/88, 12c 28 pci read/no flush mode bigend 0c/8c 7:0 big/little endian descriptor register eromba 14/94 5 breqo timer resolution control lbrd0 18/98 1:0 local bus width now programmable in s mode lbrd0 18/98 10 read prefetch count enable lbrd0 18/98 14:11 read prefetch count lbrd0 18/98 17:16 local bus width now programmable in s mode lbrd0 18/98 25 extra long eeprom load bit dmpbam 28/a8 12, 3 direct master read prefetch size control dmpbam 28/a8 10, 8:5 programmable almost full flag increased by two bits dmpbam 28/a8 11 direct master prefetch limit dmpbam 28/a8 13 i/o remap select dmpbam 28/a8 15:14 direct master write delay las1rr f0/170 31:0 local address space 1 range register las1ba f4/174 31:0 local address space 1 local base address register (remap) lbrd1 f8/178 31:0 local address space 1 bus region descriptor register mbox0 40, 78/c0 31:0 mbox0 moved to pci address 78 when messaging queue is enabled mbox1 44, 7c/c4 31:0 mbox1 moved to pci address 7c when messaging queue is enabled
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 38 version 0.93 table 4-2. register differences between pci 9080 and pci 9060 (continued) register pci/local offset bits description intcsr 68/e8 3 mailbox interrupt enable intcsr 68/e8 28 mailbox 0 interrupt status intcsr 68/e8 29 mailbox 1 interrupt status intcsr 68/e8 30 mailbox 2 interrupt status intcsr 68/e8 31 mailbox 3 interrupt status pcihidr 70/f0 31:0 pci permanent configuration id register pcihrev 74/f4 7:0 pci permanent revision id register dmamode0 80/100 13 write and invalidate mode for dma channel 0 transfers dmamode0 80/100 13 dma write and invalidate mode dmamode0 80/100 14 dma eot (end of transfer) input pin enable dmamode0 80/100 15 dma stop data transfer mode dmamode0 80/100 16 dma clear count mode dmamode0 80/100 17 dma interrupt select dmadpr0 90/110 0 dma descriptor location selector (pci or local) dmamode1 94/114 13 dma write and invalidate mode dmamode1 94/114 14 dma eot (end of transfer) input pin enable dmamode1 94/114 15 dma stop data transfer mode dmamode1 94/114 16 dma clear count mode dmamode1 94/114 17 dma interrupt select dmadpr1 a4/124 0 dma descriptor location selector (pci or local) dmacsr0 a8/128 4 dma channel 0 done dmacsr1 a9/129 4 dma channel 1 done dmathr b0/130 15:0 changed thresholds to accommodate 32 word write fifos opqis 30/b0 31:0 outbound post queue interrupt status register opqim 34/b4 31:0 outbound post queue interrupt mask register iqp 40 31:0 inbound queue port oqp 44 31:0 outbound queue port mqcr c0/140 31:0 messaging queue configuration register qbar c4/144 31:0 queue base address register ifhpr c8/148 31:0 inbound free head pointer register iftpr cc/14c 31:0 inbound free tail pointer register iphpr d0/150 31:0 inbound post head pointer register iptpr d4/154 31:0 inbound post tail pointer register ofhpr d8/158 31:0 outbound free head pointer register oftpr dc/15c 31:0 outbound free tail pointer register ofhpr e0/160 31:0 outbound post head pointer register optpr e4/164 31:0 outbound post tail pointer register qsr e8/168 7:0 queue status/control register
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 39 version 0.93 table 4 - 3 . register differences between pci 9080 and pci 9060es register pci/local offset bits description pciidr 00/00 31:16 default changed from 906e to 9080 pcisr 06/06 6 user definable bit added pciclsr 0c/0c 7:0 cache line size is now used for memory write and invalidate pcibar0 10/10 8:6 register bank size changed from 128 to 256 pcibar1 14/14 8:6 register bank size changed from 128 to 256 pcibar3 1c/1c 31:0 base address register for local address space 1 pcisvid 2c/2c 15:0 subsystem vendor id register pcisid 2e/2e 15:0 subsystem id register larbr 08, ac/88, 12c 20:19 dma channel priority larbr 08, ac/88, 12c 23 pci request mode larbr 08, ac/88, 12c 25 pci read/no write mode larbr 08, ac/88, 12c 26 pci read with write flush mode larbr 08, ac/88, 12c 27 get the local bus latency timer with breq larbr 08, ac/88, 12c 28 pci read/no flush mode bigend 0c/8c 5 direct slave big endian mode bigend 0c/8c 6 dma channel 1 big endian mode bigend 0c/8c 7 dma channel 0 big endian mode eromba 14/94 5 breqo timer resolution control lbrd0 18/98 1:0 local bus width now programmable in s mode lbrd0 18/98 15 single read access mode removed lbrd0 18/98 17:16 local bus width now programmable in s mode lbrd0 18/98 25 extra long eeprom load bit dmpbam 28/a8 12, 3 direct master read prefetch size control dmpbam 28/a8 10, 8:5 programmable almost full flag increased by one bit dmpbam 28/a8 11 direct master prefetch limit dmpbam 28/a8 13 i/o remap select dmpbam 28/a8 15:14 direct master write delay las1rr f0/170 31:0 local address space 1 range register las1ba f4/174 31:0 local address space 1 local base address register (remap) lbrd1 f8/178 31:0 local address space 1 bus region descriptor register mbox0 40, 78/c0 31:0 mbox0 moved to pci address 78 when messaging queue is enabled mbox1 44, 7c/c4 31:0 mbox1 moved to pci address 7c when messaging queue is enabled mbox4 50/d0 31:0 mbox4 added mbox5 54/d4 31:0 mbox5 added mbox6 58/d8 31:0 mbox6 added mbox7 5c/dc 31:0 mbox7 added p2ldbell 60/e0 31:8 24 more doorbell bits added to pci to local doorbell register l2pdbell 64/e4 31:8 24 more doorbell bits added to local to pci doorbell register intcsr 68/e8 3 mailbox interrupt enable
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 40 version 0.93 table 4-3. register differences between pci 9080 and pci 9060es (continued) register pci/local offset bits description intcsr 68/e8 18 dma channel 0 interrupt enable intcsr 68/e8 19 dma channel 1 interrupt enable intcsr 68/e8 21 dma channel 0 interrupt status intcsr 68/e8 22 dma channel 1 interrupt status intcsr 68/e8 25 dma channel 0 active during abort intcsr 68/e8 26 dma channel 1 active during abort intcsr 68/e8 28 mailbox 0 interrupt status intcsr 68/e8 29 mailbox 1 interrupt status intcsr 68/e8 30 mailbox 2 interrupt status intcsr 68/e8 31 mailbox 3 interrupt status cntrl 6c/ec 3:0 read command for dma cntrl 6c/ec 7:4 write command for dma pcihrev 74/f4 7:0 pci permanent revision id register dmamode0 80/100 31:0 dma channel 0 mode register dmapadr0 84/104 31:0 dma channel 0 pci address register dmaladr0 88/108 31:0 dma channel 0 local address register dmasiz0 8c/10c 31:0 dma channel 0 size register dmadpr0 90/110 31:0 dma channel 0 descriptor pointer register dmamode1 94/114 31:0 dma channel 1 mode register dmapadr1 98/108 31:0 dma channel 1 pci address register dmaladr1 9c/11c 31:0 dma channel 1 local address r egister dmasiz1 a0/120 31:0 dma channel 1 size register dmadpr1 a4/124 31:0 dma channel 1 descriptor pointer register dmacsr0 a8/128 7:0 dma channel 0 command/status dmacsr1 a9/129 7:0 dma channel 1 command/status dmathr b0/130 31:0 dma threshold register opqis 30/b0 31:0 outbound post queue interrupt status register opqim 34/b4 31:0 outbound post queue interrupt mask register iqp 40 31:0 inbound queue port oqp 44 31:0 outbound queue port mqcr c0/140 31:0 messaging queue configuration register qbar c4/144 31:0 queue base address register ifhpr c8/148 31:0 inbound free head pointer register iftpr cc/14c 31:0 inbound free tail pointer register iphpr d0/150 31:0 inbound post head pointer register iptpr d4/154 31:0 inbound post tail pointer register ofhpr d8/158 31:0 outbound free head pointer register oftpr dc/15c 31:0 outbound free tail pointer register ofhpr e0/160 31:0 outbound post head pointer register optpr e4/164 31:0 outbound post tail pointer register qsr e8/168 7:0 queue status/control register
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 41 version 0.93 table 4 - 4 . register differences between pci 9080 and pci 9060sd register pci/local offset bits description pciidr 00/00 31:16 default changed from 906d to 9080 pcisr 06/06 6 user definable bit added pcibar0 10/10 8:6 register bank size changed from 128 to 256 pcibar1 14/14 8:6 register bank size changed from 128 to 256 pcisvid 2c/2c 15:0 subsystem vendor id register pcisid 2e/2e 15:0 subsystem id register larbr 08, ac/88, 12c 31:0 local/dma arbitration register now accessible from pci bus larbr 08, ac/88, 12c 23 pci request mode larbr 08, ac/88, 12c 28 pci read/no flush mode bigend 0c/8c 1 direct master big endian mode bigend 0c/8c 7 dma channel 0 big endian mode eromba 14/94 3:0 direct slave breqo delay clocks eromba 14/94 4 local bus breqo enable eromba 14/94 5 breqo timer resolution control lbrd0 18/98 1:0 local bus width now programmable in s mode lbrd0 18/98 15 single read access mode removed lbrd0 18/98 17:16 local bus width now programmable in s mode dmrr 1c/9c 31:16 local range register for direct master to pci dmlbam 20/a0 31:0 local bus base address register for direct master to pci memory dmlbai 24/a4 31:0 local bus base address register for direct master to pci io/cfg dmpbam 28/a8 31:0 pci base address (remap) register for direct master to pci memory las1rr f0/170 31:0 local address space 1 range register was at 30/b0 in pci 9060sd las1ba f4/174 31:0 local address space 1 local base address register (remap) was at 34/b4 in pci 9060sd lbrd1 f8/178 31:0 local address space 1 bus region descriptor register was at 38/b8 in pci 9060sd lbrd1 f8/178 15 single read access mode removed mbox0 40,78/c0 31:0 mbox0 moved to pci address 78 when messaging queue is enabled mbox1 44, 7c/c4 31:0 mbox1 moved to pci address 7c when messaging queue is enabled mbox4 50/d0 31:0 mbox4 added mbox5 54/d4 31:0 mbox5 added mbox6 58/d8 31:0 mbox6 added mbox7 5c/dc 31:0 mbox7 added intcsr 68/e8 18 dma channel 0 interrupt enable intcsr 68/e8 21 dma channel 0 interrupt active intcsr 68/e8 24 direct master active during abort intcsr 68/e8 25 dma channel 0 active during abort pcihrev 74/f4 7:0 pci permanent revision id register
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 42 version 0.93 table 4-4. register differences between pci 9080 and pci 9060sd (continued) register pci/local offset bits description dmamode0 80/100 31:0 dma channel 0 mode register dmapadr0 84/104 31:0 dma channel 0 pci address register dmaladr0 88/108 31:0 dma channel 0 local address regist er dmasiz0 8c/10c 31:0 dma channel 0 transfer size register dmadpr0 90/110 31:0 dma channel 0 descriptor pointer register dmacsr0 a8/128 7:0 dma channel 0 command/status register dmathr b0/130 15:0 dma channel 0 thresholds opqis 30/b0 31:0 outbound post queue interrupt status register opqim 34/b4 31:0 outbound post queue interrupt mask register iqp 40 31:0 inbound queue port oqp 44 31:0 outbound queue port mqcr c0/140 31:0 messaging queue configuration register qbar c4/144 31:0 queue base address register ifhpr c8/148 31:0 inbound free head pointer register iftpr cc/14c 31:0 inbound free tail pointer register iphpr d0/150 31:0 inbound post head pointer register iptpr d4/154 31:0 inbound post tail pointer register ofhpr d8/158 31:0 outbound free head pointer register oftpr dc/15c 31:0 outbound free tail pointer register ofhpr e0/160 31:0 outbound post head pointer register optpr e4/164 31:0 outbound post tail pointer register qsr e8/168 7:0 queue status/control register
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 43 version 0.93 4. 2 register address mapping 4. 2 .1 pci configuration registers table 4 - 5 . pci configuration registers pci cfg register address local access (offset from chip select address) to ensure software compatibility with other versions of the pci 9080 family and to ensure compatibility with future enhancements, write a zero to all unused bits. pci/local writable eeprom writable 31 24 23 16 15 8 7 0 00h 00h device id vendor id local y 04h 04h status command y n 08h 08h class code revision id local y 0ch 0ch bist header type pci latency timer cache line size y [15:0], local n 10h 10h pci base address 0 for memory mapped configuration registers y n 14h 14h pci base address 1 for i/o mapped configuration registers y n 18h 18h pci base address 2 for local address space 0 y n 1ch 1ch pci base address 3 for local address space 1 y n 20h 20h unused base address n n 24h 24h unused base address n n 28h 28h cardbus cis pointer (not supported) n n 2ch 2ch subsystem id subsystem vendor id local y 30h 30h pci base address for local expansion rom y n 34h 34h reserved n n 38h 38h reserved n n 3ch 3ch max_lat min_gnt interrupt pin interrupt line y [7:0], local y
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 44 version 0.93 4. 2 .2 local configuration registers table 4 - 6 . local configuration registers pci (offset from base address) local access (offset from chip select address) to ensure software compatibility with other versions of the pci 9080 family and to ensure compatibility with future enhancements, write a zero to all unused bits. 31 0 pci/local writable eeprom writable 00h 80h range for pci to local address space 0 y y 04h 84h local base address (remap) for pci to local address space 0 y y 08h 88h local/dma arbitration register y y 0ch 8ch big/little endian descriptor register y y 10h 90h range for pci to local expansion rom y y 14h 94h local base address (remap) for pci to local expansion rom and breqo control y y 18h 98h local bus region descriptors (space 0 and expansion rom) for pci to local acc esses y y 1ch 9ch range for direct master to pci y y 20h a0h local base address for direct master to pci memory y y 24h a4h local base address for direct master to pci io/cfg y y 28h a8h pci base address (remap) for direct master to pci y y 2ch ach pci configuration address register for direct master to pci io/cfg y y f0h 170h range for pci to local address space 1 y y f4h 174h local base address (remap) for pci to local address space 1 y y f8h 178h local bus region descriptor (space 1) for pci to l ocal accesses y y
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 45 version 0.93 4. 2 .3 runtime registers table 4 - 7 . runtime registers pci (offset from base address) local access (offset from chip select address) to ensure software compatibility with other versions of the pci 9080 family and to ensure compatibility with future enhancements, write a zero to all unused bits. 31 0 pci/local writable eeprom writable 40h c0h mailbox register 0 1 y y 44h c4h mailbox register 1 1 y y 48h c8h mailbox register 2 y n 4ch cch mailbox register 3 y n 50h d0h mailbox register 4 y n 54h d4h mailbox register 5 y n 58h d8h mailbox register 6 y n 5ch dch mailbox register 7 y n 60h e0h pci to local doorbell register y n 64h e4h local to pci doorbell register y n 68h e8h interrupt control / status y n 6ch ech eeprom control, pci command codes, user i/o control, init control y n 70h f0h device id vendor id n n 74h f4h unused revision id n n 78h c0h mailbox register 0 1 y n 7ch c4h mailbox register 1 1 y n note: mailbox registers 0 and 1 are always accessible at addresses 78h/c0h and 7ch/c4. when the i 2 o feature is disabled (bit 0 of qsr register = 0), mailbox registers 0 and 1 are also accessible at pci addresses 40h and 44h for pci 9060 compatibility. when the i 2 o feature is enabled, the inbound and outbound queue pointers are accessed at addresses 40 and 44, replacing the mailbox registers in the pci address space.
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 46 version 0.93 4. 2 .4 dma registers table 4 - 8 . dma registers pci (offset from base address) local access (offset from chip select address) to ensure software compatibility with other versions of the pci 9080 family and to ensure compatibility with future enhancements, write a zero to all unused bits. 31 0 pci/local writable eeprom writable 80h 100h dma ch 0 mode y n 84h 104h dma ch 0 pci address y n 88h 108h dma ch 0 local address y n 8ch 10ch dma ch 0 transfer byte count y n 90h 110h dma ch 0 descriptor pointer y n 94h 114h dma ch 1 mode y n 98h 118h dma ch 1 pci address y n 9ch 11ch dma ch 1 local address y n a0h 120h dma ch 1 transfer byte count y n a4h 124h dma ch 1 descriptor pointer y n a8h 128h reserved dma channel 1 command/status register dma channel 0 command/status register y n ach 12ch local/dma arbitration register y n b0h 130h dma threshold register y n
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 47 version 0.93 4. 2 .5 messaging queue registers table 4 - 9 . messaging queue registers pci (offset from base address) local access (offset from chip select address) to ensure software compatibility with other versions of the pci 9080 family and to ensure compatibility with future enhancements, write a zero to all unused bits. 31 0 pci/local writable eeprom writable 30h b0h outbound post queue interrupt status n n 34h b4h outbound post queue interrupt mask y n 40h ? inbound queue port pci n 44h ? outbound queue port pci n c0h 140h messaging unit configuration register y n c4h 144h queue base address register y n c8h 148h inbound free head pointer register y n cch 14ch inbound free tail pointer register y n d0h 150h inbound post head pointer register y n d4h 154h inbound post tail pointer register y n d8h 158h outbound free head pointer register y n dch 15ch outbound free tail pointer register y n e0h 160h outbound post head pointer register y n e4h 164h outbound post tail pointer register y n e8h 168h queue status/control register y n note 1: when i 2 o messaging is enabled (bit 0 of qsr register = 1), a pci master (host or another iop) uses the inbound queue port to read mfas from the inbound free list fifo and to write mfas to the inbound post list fifo. it uses the outbound queue port to read mfas from the outbound post list fifo and to write mfas to the outbound free list fifo. note 2: each inbound message frame address (mfa) is specified by i 2 o as the offset from the pci base address 0 (programmed in register pcibar0 at offset 10h) to the start of the message frame. this means that all inbound message frames should reside in pci base address 0 memory space. note 3: each outbound message frame address (mfa) is specified by i 2 o as the offset from system address 0x00000000h. so the outbound mfa is the physical 32 bit address of the frame in shared pci system memory. note 4: the inbound and outbound queues may reside in local address space 0 or 1 by programming the qsr register. they do not need to be in shared memory.
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 48 version 0.93 4. 3 pci configuration registers all registers may be written to or read from in byte, word or long word accesses. 4. 3 .1 (pciidr; pci:00h, loc:00h) pci configuration id register table 4 - 10 . (pciidr; pci:00h, loc:00h) pci configuration id register field description read write value after reset 15:0 vendor id. identifies the manufacturer of the device. defaults to the pci sig issued vendor id of plx (10b5h) if no eeprom is present and pin nb# (no local bus initialization) is asserted low. yes local/ eeprom 10b5h or 0 31:16 device id. identifies the particular device. defaults to the plx part number for pci interface chip (pc i 9080) if no eeprom is present and pin nb# (no local bus initialization) is asserted low. yes local/ eeprom 9080h or 0 4. 3 .1 .1 (pcicr; pci:04h, loc:04h) pci command register table 4 - 11 . (pcicr; pci:04h, loc:04h) pci command register field description read write value after reset 0 i/o space. a value of 1 allows the device to respond to i/o space accesses. a value of 0 disables the device from responding to i/o space accesses. yes yes 0 1 memory space. a value of 1 allo ws the device to respond to memory space accesses. a value of 0 disables the device from responding to memory space accesses. yes yes 0 2 master enable. a value of 1 allows the device to behave as a bus master. a value of 0 disables the device from generating bus master accesses. yes yes 0 3 special cycle. (this bit is not supported.) yes no 0 4 memory write/invalidate. (refer to the dma mode registers (dmamode0, dmamode1) bit 13. yes yes 0 5 vga palette snoop. (this bit is not supported.) yes no 0 6 parity error response. a value of 0 indicates a parity error is ignored and operation continues. a value of 1 indicates parity checking is enabled. yes yes 0 7 wait cycle control. controls whether or not the device does address/data stepping. a value of 0 indicates the device never does stepping. a value of 1 indicates the device always does stepping. note: hardcoded to 0. yes no 0 8 serr# enable. a value of 1 enables the serr# driver. a value of 0 disables the driver. yes yes 0 9 fast back -to -back enabl e. indicates what type of fast back -to -back transfers a master can perform on the bus. a value of 1 indicates fast back -to -back transfers can occur to any agent on the bus. a value of 0 indicates fast back -to -back transfers can only occur to the same agent as the previous cycle. yes no 0 15:10 reserved. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 49 version 0.93 4. 3 .2 (pcisr; pci:06h, loc:06h) pci status register table 4 - 12 . (pcisr; pci:06h, loc:06h) pci status register field description read write value after reset 5:0 reserved. yes no 0 6 if high, supports user definable features. this bit can only be written from the local side. it is read-only from the pci side. yes local 0 7 fast back -to -back capable. when this bit is set to 1, it indicates the adapter can accept fast back -to -back transactions. a value of 0 indicates the adapter cannot. yes no 1 8 master data parity error detected. this bit is set to 1 when three conditions are met: 1) the pci 9080 asserted perr# itself or observed perr# asserted; 2) the pci 908 0 was the bus master for the operation in which the error occurred; 3) the parity error response bit in the command register is set. writing a 1 to this bit clears the bit (0). yes yes/clr 0 10:9 devsel timing. indicates timing for devsel# assertion. (a value of 01 is medium.) yes no 01 11 target abort. when this bit is set to 1, this bit indicates the pci 9080 has signaled a target abort. writing a 1 to this bit clears the bit (0). yes yes/clr 0 12 received target abort. when set to 1, this bit indicate s the pci 9080 has received a target abort signal. writing a 1 to this bit clears the bit (0). yes yes/clr 0 13 master abort. when set to 1, this bit indicates the pci 9080 has generated a master abort signal. writing a 1 to this bit clears the bit (0). yes yes/clr 0 14 signaled system error. when set to 1, this bit indicates the pci 9080 has reported a system error on the serr# signal. writing a 1 to this bit clears the bit (0). yes yes/clr 0 15 detected parity error. when set to 1, this bit indicates t he pci 9080 has detected a pci bus parity error, even if parity error handling is disabled (the parity error response bit in the command register is clear). one of three conditions can cause this bit to be set. 1) the pci 9080 detected a parity error during a pci address phase; 2) the pci 9080 detected a data parity error when it was the target of a write; 3) the pci 9080 detected a data parity error when performing a master read operation. writing a 1 to this bit clears the bit (0). yes yes/clr 0 4. 3 .3 (pcirev; pci:08h, loc:08h) pci revision id register table 4 - 13 . (pcirev; pci:08h, loc:08h) pci revision id register field description read write value after reset 7:0 revision id. the silicon revision of the pci 9080. yes local/ eeprom current rev #
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 50 version 0.93 4. 3 .4 (pciccr; pci:09-0bh, loc:09-0bh) pci class code register table 4 - 14 . (pciccr; pci:09-0bh, loc:09-0bh) pci class code register field description read write value after reset 7:0 register level programming interface. 00h = queue ports at 40h and 44h. yes local/ eeprom 00 15:8 subclass code. 80h = other bridge device, 00h = i 2 o device. yes local/ eeprom 80h 23:16 base class code. 06h = bridge device, 0eh = intelligent i/o controller. yes local/ eeprom 06h 4. 3 .5 (pciclsr; pci:0ch, loc:0ch) pci cache line size register table 4 - 15 . (pciclsr; pci:0ch, loc:0ch) pci cache line size register field description read write value after reset 7:0 system cache line size in units of 32 -bit words. yes yes 0 4. 3 .6 (pciltr; pci:0dh, loc:0dh) pci latency timer register table 4 - 16 . (pciltr; pci:0dh, loc:0dh) pci latency timer register field description read write value after reset 7:0 pci latency timer. specifies in units of pci bus clocks, the amount of time the pci 9080, as a bus master, can burst data on the pci bus. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 51 version 0.93 4. 3 .7 (pcihtr; pci:0eh, loc:0eh) pci header type register table 4 - 17 . (pcihtr; pci:0eh, loc:0eh) pci header type register field description read write value after reset 6:0 configuration layout type. specifies the layout of bits 10h through 3fh in configuration space. only one encoding 0 is defined. all other encodings are reserved. yes local 0 7 header type. a value of 1 indicates multiple functions. a value of 0 indicates a single function. yes local 0 4. 3 .8 (pcibistr; pci:0fh, loc:0fh) pci built-in self test (bist) register table 4 - 18 . (pcibistr; pci:0fh, loc:0fh) pci built-in self test (bist) register field description read write value after reset 3:0 a value of 0 indicates the device passed its test. nonzero values indicate the device failed. device specific failure codes can be encoded in the nonzero value. yes local 0 5:4 reserved. device returns 0. yes no 0 6 pci writes a 1 to invoke bist. generates an interrupt to local bus. local bus resets the bit when bist is complete. software should fail device if bist is not comple te after 2 seconds. refer to runtime registers for interrupt control/status. yes yes 0 7 returns 1 if the device supports bist. returns 0 if the device is not bist compatible. yes local 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 52 version 0.93 4. 3 .9 (pcibar0; pci:10h, loc:10h) pci base address register for memory accesses to local, runtime, and dma registers table 4 - 19 . (pcibar0; pci:10h, loc:10h) pci base address register for memory accesses to local, runtime, and dma registers field description read write value after reset 0 memory space indicator. a value of 0 indicates the register maps into memory space. a value of 1 indicates the register maps into i/o space. note: hardcoded to 0. yes no 0 2:1 location of register. location values: 00?locate anywhere in 32 bit memory address space 01?locate below 1 mb memory address space 10?locate anywhere in 64 bit memory address space 11?reserved note: hardcoded to 0. yes no 0 3 prefetchable. a value of 1 indicates there are no side effects on reads. this bit has no effect on the operation of the pci 9080. note: hardcoded to 0. yes no 0 7:4 memory base address. memory base address for access to local, runtime and dma registers (default is 256 bytes). note: hardcoded to 0. yes no 0 31:8 memory base address. memory base address for access to local, runtime and dma registers. yes yes 0 note: for i 2 o, the inbound message frame pool must reside in the address space pointed to by pcibar0. the message frame address (mfa) is defined by i 2 o as the offset from this base address to the start of the message frame. 4. 3 .10 (pcibar1; pci:14h, loc:14h) pci base address register for i/o accesses to local, runtime, and dma registers table 4 - 20 . (pcibar1; pci:14h, loc:14h) pci base address register for i/o accesses to local, runtime, and dma registers field description read write value after reset 0 memory space indicator. a value of 0 indicates the register maps into memory space. a value of 1 indicates the register maps into i/o space. note: hardcoded to 1. yes no 1 1 reserved. yes no 0 7:2 i/o base address. base address for i/o access to local, runtime and dma registers. (default is 256 bytes) note: hardcoded to 0. yes no 0 31:8 i/o base address. base address for i/o access to local, runtime and dma registers. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 53 version 0.93 4. 3 .11 (pcibar2; pci:18h, loc:18h) pci base address register for memory accesses to local address space 0 table 4 - 21 . (pcibar2; pci:18h, loc:18h) pci base address register for memory accesses to local address space 0 field description read write value after reset 0 memory space indicator. a value of 0 indicates the register maps into memory space. a value of 1 indicates the register maps into i/o space. (specified in las0rr register.) yes no 0 2:1 location of register (if memory space). location values: 00?locate anywhere in 32 bit memory address space 01?locate below 1 mb memory address space 10?locate anywhere in 64 bit memory address space 11?reserved (specified in las0rr register.) if i/o space, bit 1 is always 0 and bit 2 is included in the base address. yes mem: no i/o: bit 1 no, bit 2 yes 0 3 prefetchable (if memory space). a value of 1 indicates there are no side effects on reads. this bit reflects the value of bit 3 in the las0rr register and provides only status to the system. this bit has no effect on the operation of the pci 9080. prefetching features of this address space are controlled by the associated bus region descriptor register. (specified in las0rr register.) if i/o space, bit 3 is inclu ded in the base address. yes mem: no i/o: yes 0 31:4 memory base address. memory base address for access to local address space 0. yes yes 0 note: pcibar2 can be enabled or disabled by setting or clearing bit 0 in the las0ba register.
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 54 version 0.93 4. 3 .12 (pcibar3; pci:1ch, loc:1ch) pci base address register for memory accesses to local address space 1 table 4 - 22 . (pcibar3; pci:1ch, loc:1ch) pci base address register for memory accesses to local address space 1 field description read write value after reset 0 memory space indicator. a value of 0 indicates the register maps into memory space. a value of 1 indicates the register maps into i/o space. (specified in las1rr register.) yes no 0 2:1 location of register. location values: 00?locate anywhere in 32 bit memory address space 01?locate below 1 mb memory address space 10?locate anywhere in 64 bit memory address space 11?reserved (specified in las1rr register.) if i/o space, bit 1 is always 0 and bit 2 is included in the base addres s. yes mem: no i/o: bit 1 no, bit 2 yes 0 3 prefetchable (if memory space). a value of 1 indicates there are no side effects on reads. this bit reflects the value of bit 3 in the las1rr register and only provides status to the system. this bit has no effect on the operation of the pci 9080. prefetching features of this address space are controlled by the associated bus region descriptor register. (specified in las1rr register.) if i/o space, bit 3 is included in the base address. yes mem: no i/o: yes 0 31:4 memory base address. memory base address for access to local address space 1. yes yes 0 note: pcibar3 can be enabled or disabled by setting or clearing bit 0 in the las1ba register. 4. 3 .13 (pcibar4; pci:20h, loc:20h) pci base address register table 4 - 23 . (pcibar4; pci:20h, loc:20h) pci base address register field description read write value after reset 31:0 reserved. yes no 0 4. 3 .14 (pcibar5; pci:24h, loc:24h) pci base address register table 4 - 24 . (pcibar5; pci:24h, loc:24h) pci base address register field description read write value after reset 31:0 reserved. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 55 version 0.93 4. 3 .15 (pcicis; pci:28h, loc:28h) pci cardbus cis pointer table 4 - 25 . (pcicis; pci:28h, loc:28h) pci cardbus cis pointer field description read write value after reset 31:0 cardbus information structure pointer for pcmcia. (not supported.) yes no 0 4. 3 .16 (pcisvid; pci:2ch, loc:2ch) pci subsystem vendor id table 4 - 26 . (pcisvid; pci:2ch, loc:2ch) pci subsystem vendor id field description read write value after reset 15:0 subsystem vendor id (unique add-in board vendor id). yes local/ eeprom 10b5 4. 3 .17 (pcisid; pci:2eh, loc:2eh) pci subsystem id table 4 - 27 . (pcisid; pci:2eh, loc:2eh) pci subsystem id field description read write value after reset 15:0 subsystem id (unique add-in board device id). yes local/ eeprom 9080 4. 3 .18 (pcierbar; pci:30h, loc:30h) pci expansion rom base register table 4 - 28 . (pcierbar; pci:30h, loc:30h) pci expansion rom base register field description read write value after reset 0 address decode enable. a value of 1 indicates the device accepts accesses to the expansion rom address. a value of 0 indicates the device does not accept accesses to expansion rom space. should be set to 1 if expansion rom is present by the pci host. yes yes 0 10:1 reserved. yes no 0 31:11 expansion rom base address (upper 21 bits). yes yes 0 4. 3 .19 (pciilr; pci:3ch, loc:3ch) pci interrupt line register table 4 - 29 . (pciilr; pci:3ch, loc:3ch) pci interrupt line register field description read write value after reset 7:0 interrupt line routing value. value indicates which input of the system interrupt controller(s) to which the interrupt line of the device is connected. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 56 version 0.93 4. 3 .20 (pciipr; pci:3dh, loc:3dh) pci interrupt pin register table 4 - 30 . (pciipr; pci:3dh, loc:3dh) pci interrupt pin register field description read write value after reset 7:0 interrupt pin register. indicates which interrupt pin the device uses. the following values are decoded: 0 = no interrupt pin 1 = inta# 2 = intb# 3 = intc# 4 = intd# yes local/ eeprom 1 4. 3 .21 (pcimgr; pci:3eh, loc:3eh) pci min_gnt register table 4 - 31 . (pcimgr; pci:3eh, loc:3eh) pci min_gnt register field description read write value after reset 7:0 min_gnt. specifies how long a burst period the device needs, assuming a clock rate of 33 mhz. value is multiple of 1/4 sec increments. yes local/ eeprom 0 4. 3 .22 (pcimlr; pci:3fh, loc:3fh) pci max_lat register table 4 - 32 . (pcimlr; pci:3fh, loc:3fh) pci max_lat register field description read write value after reset 7:0 max_lat. specifies how often the device must gain access to the pci bus. value is multiple of 1/4 sec increments. yes local/ eeprom 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 57 version 0.93 4. 4 local configuration registers 4. 4 .1 (las0rr; pci:00h, loc:80h) local address space 0 range register for pci to local bus table 4 - 33 . (las0rr; pci:00h, loc:80h) local address space 0 range register for pci to local bus field description read write value after reset 0 memory space indicator. a value of 0 indicates local address space 0 maps into pci memory space. a value of 1 indicates address space 0 maps into pci i/o space. yes yes 0 2:1 if mapped into memory space, encoding is as follows: 2/1 meaning 0 0 locate anywhere in 32 bit pci address space 0 1 locate below 1 mb in pci address space 1 0 locate anywhere in 64 bit pci address space 1 1 reserved if mapped into i/o space, bit 1 must be set to 0. bit 2 is included with bits [31:3] to indicate decoding range. yes yes 0 3 if mapped into memory space, a value of 1 indicates reads are prefetchable (bit has no effect on the operation of the pci 9080, but is used for system status). if mapped into i/o space, bit is included with bits [31:2] to indicate decoding range. yes yes 0 31:4 specifies which pci address bits to use for decoding a pci access to local bus space 0. each bit corresponds to a pci address bit. bit 31 corresponds to address bit 31. a value of 1 should be written to all bits that should be included in decode and a 0 to all others (used in conjunction with pci configuration register 18h). default is 1 mb. yes yes fff0000h 4. 4 .2 (las0ba; pci:04h, loc:84h) local address space 0 local base address (remap) register table 4 - 34 . (las0ba; pci:04h, loc:84h) local address space 0 local base address (remap) register field description read write value after reset 0 space 0 enable. a value of 1 enables decoding of pci addresses for direct slave access to local space 0. a value of 0 disables decoding. if this bit is set to 0, the pci bios may not allocate (assign) the base address for space 0. yes yes 0 1 reserved. yes no 0 3:2 if local space 0 is mapped into memory space, bits are not used. if mapped int o i/o space, bit is included with bits [31:4] for remapping. yes yes 0 31:4 remap of pci address to local address space 0 into a local address space. the bits in this register remap (replace) the pci address bits used in decode as the local address bits. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 58 version 0.93 4. 4 .3 (larbr; pci:08h or ach, loc:88h or 12ch) local/dma arbitration register table 4 - 35 . (larbr; pci:08h or ach, loc:88h or 12ch) local/dma arbitration register field description read write value after reset 7:0 local bus latency timer. number of local bus clock cycles before negating hold and releasing the local bus. this timer is also used with bit 27 to delay breq input to give up the local bus only when this timer expires. yes yes 00 15:8 local bus pause timer. number of local bus clock cycles before reasserting hold after releasing the local bus. yes yes 00 16 local bus latency timer enable. a value of 1 enables the latency timer. yes yes 0 17 local bus pause timer enable. a value of 1 enables the pa use timer. yes yes 0 18 local bus breq enable. a value of 1 enables the local bus breq input. when the breq input is active, the pci 9080 negates hold and releases the local bus. yes yes 0 20:19 dma channel priority. a value of 00 indicates a rotational priority scheme. a value of 01 indicates channel 0 has priority. a value of 10 indicates channel 1 has priority. a value of 11 is reserved. yes yes 0 21 local bus direct slave give up bus mode. when set to 1, the pci 9080 negates hold and releases the local bus when the direct slave write fifo becomes empty during a direct slave write or when the direct slave read fifo becomes full during a direct slave read. yes yes 1 22 direct slave llocko# enable. a value of 1 enables pci direct slave locked sequences. a value of 0 disables direct slave locked sequences. yes yes 0 23 pci request mode. a value of 1 causes the pci 9080 to negate req when it asserts frame during a master cycle. a value of 0 causes the pci 9080 to leave req asserted for the entire bus master cycle. yes yes 0 24 pci rev 2.1 mode. when set to 1, the pci 9080 operates in delayed transaction mode for direct slave reads. the pci 9080 issues a retry and prefetches the read data. yes yes 0 25 pci read no write mode. a value of 1 forces a retry on writes if read is pending. a value of 0 allows writes to occur while read is pending. yes yes 0 26 pci read with write flush mode. a value of 1 submits a request to flush a pending read cycle if a write cycle is detected. a value of 0 submits a request to not effect pending reads when a write cycle occurs (pci 2.1 compatible). yes yes 0 27 gate the local bus latency timer with breq. if this bit is set to 0, the pci 9080 gives up the local bus during direct slave or dma transfer after the current cycle (if enabled and breq is sampled). if this bit is set to 1, the pci 9080 gives up the local bus only (if enabled and breq is sampled) and the local bus latency timer is enabled and expired during direct slave or dma transfer. yes yes 0 28 pci read no flush mode. a value of 1 submits a request to not flush the read fifo if the pci read cycle completes (cached read mode). a value of 0 submits a request to flush the read fifo if a pci read cycle completes. yes yes 0 29 if set to 1, reads from the pci configuration register address 00h return the device id and vendor id. if set to 1, reads from the pci configuration register address 00h return the subsystem id and subsystem vendor id. yes yes 0 31:30 reserved. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 59 version 0.93 4. 4 .4 (bigend; pci:0ch, loc:8ch) big/little endian descriptor register table 4 - 36 . (bigend; pci:0ch, loc:8ch) big/little endian descriptor register field description read write value after reset 0 configuration register big endian mode. a value of 1 specifies use of big endian data ordering for local accesses to the configuration registers. a value of 0 specifies little endian ordering. big endian mode can be specified for configuration register accesses by asserting the bigend# pin during the address phase of the access. yes yes 0 1 direct master big endian mode. a value of 1 specifies use of big endian data ordering for direct master accesses. a value of 0 specifies little endian ordering. big endian mode can be specified for direct master accesses by asserting the bigend# input pin during the address phase of the access. yes yes 0 2 direct slave address space 0 big endian mode. a value of 1 specifies use of big endian data ordering for direct slave accesses to local address space 0. a value of 0 specifies little endian ordering. yes yes 0 3 direct slave address expansion rom 0 big endian mode. a value of 1 specifies use of big endian data ordering for direct slave accesses to expansion rom. a value of 0 specifies little endian ordering. yes yes 0 4 big endian byte lane mode. a value of 1 specifies that in big endian mode, use byte lanes 31:16 for a 16 bit local bus and byte lanes 31:24 for an 8 bit local bus. a value of 0 specifies that in big endian mode, byte lanes 15:0 be used for a 16 bit local bus and byte lanes 7:0 for an 8 bit local bus. yes yes 0 5 direct slave address space 1 big endian mode. a value of 1 specifies use of big endian data ordering for direct slave accesses to local address space 1. a value of 0 specifies little endian ordering. yes yes 0 6 dma channel 1 big endian mode. a value of 1 specifies use of big endian data ordering for dma channel 1 accesses to the local address space. a value of 0 specifies little endian ordering. yes yes 0 7 dma channel 0 big endian mode. a value of 1 sp ecifies use of big endian data ordering for dma channel 0 accesses to the local address space. a value of 0 specifies little endian ordering. yes yes 0 31:8 reserved. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 60 version 0.93 4. 4 .5 (eromrr; pci:10h, loc:90h) expansion rom range register table 4 - 37 . (eromrr; pci:10h, loc:90h) expansion rom range register field description read write value after reset 10:0 reserved. yes no 0 31:11 specifies which pci address bits to use for decoding a pci to local bus expansion rom. each of the bits corresponds to a pci address bit. bit 31 corresponds to address bit 31. a value of 1 should be written to all bits that should be included in decode and a 0 to all others (used in conjunction with pci configuration register 30h). default is 64 kb. yes yes ffff00h 4. 4 .6 (eromba; pci:14h, loc:94h) expansion rom local base address (remap) register and breqo control table 4 - 38 . (eromba; pci:14h, loc:94h) expansion rom local base address (remap) register and breqo control field description read write value after reset 3:0 direct slave breqo (backoff request out) delay clocks. number of local bus clocks in which a direct slave hold request is pending and a local direct master access is in progress and not being granted the bus (lholda) before asserting breqo. once asserted, breqo remains asserted until the pci 9080 receives lholda (lsb = 8 or 64 clocks). yes yes 0 4 local bus breqo enable. a value of 1 enables the pci 9080 to assert the breqo output. yes yes 0 5 breqo timer resolution. a value of 1 changes the lsb of the breqo timer from 8 to 64 clocks. yes yes 0 10:6 reserved. yes no 0 31:11 remap of pci expansion rom space into a local address space. the bits in this register remap (replace) the pci address bits used in decode as the local address bits. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 61 version 0.93 4. 4 .7 (lbrd0; pci:18h, loc:98h) local address space 0/expansion rom bus region descriptor register table 4 - 39 . (lbrd0; pci:18h, loc:98h) local address space 0/e xpansion rom bus region descriptor register field description read write value after reset 1:0 memory space 0 local bus width. a value of 00 indicates a bus width of 8 bits, a value of 01 indicates a bus width of 16 bits and a value of 10 or 11 indicates a bus width of 32 bits. yes yes s = 01 j = 11 c = 11 5:2 memory space 0 internal wait states (data to data; 0-15). yes yes 0 6 memory space 0 ready input enable. a value of 1 enables ready input. a value of 0 disables the ready input. yes yes 0 7 memory space 0 bterm input enable. a value of 1 enables bterm input. a value of 0 disables the bterm input. if this bit is set to 0, the pci 9080 bursts 4 lword maximum at a time. yes yes 0 8 memory space 0 prefetch disable. if mapped into memory space, a value of 0 enables read prefetching. a value of 1 disables prefetching. if prefetching is disabled, the pci 9080 disconnects after each memory read. yes yes 0 9 expansion rom space prefetch disable. a value of 0 enables read prefetching. a value of 1 disabl es prefetching. if prefetching is disabled, the pci 9080 disconnects after each memory read. yes yes 0 10 read prefetch count enable. when set to 1 and memory prefetching is enabled, the pci 9080 prefetches up to the number of lwords specified in the prefetch count. when set to 0, the pci 9080 ignores the count and continues prefetching until terminated by the pci bus. yes yes 0 14:11 prefetch counter. number of long words to prefetch during memory read cycles (0-15). a count of zero selects a prefetch of 16 lwords. yes yes 0 15 reserved. yes no 0 17:16 expansion rom space local bus width. a value of 00 indicates a bus width of 8 bits, a value of 01 indicates a bus width of 16 bits and a value of 10 or 11 indicates a bus width of 32 bits. yes yes s = 01 j = 11 c = 11 21:18 expansion rom space internal wait states (data to data; bits 0-15). yes yes 0 22 expansion rom space ready input enable. a value of 1 enables ready input. a value of 0 disables the ready input. yes yes 0 23 expansion rom space bterm input enable. a value of 1 enables bterm input. a value of 0 disables the bterm input. if this bit is set to 1, the pci 9080 bursts 4 lword maximum at a time. yes yes 0 24 memory space 0 burst enable. a value of 1 enables bursting. a value of 0 disables bursting. if burst is disabled, the local bus performs continuous single cycles for burst pci read/write cycles. yes yes 0 25 extra long load from eeprom. a value of 1 loads the subsystem id and local address space 1 registers. a value of 0 indicates not to load them. yes no 0 26 expansion rom space burst enable. a value of 1 enables bursting. a value of 0 disables bursting. if burst is disabled, the local bus performs continuous single cycles for burst pci read/write cycles. yes yes 0 27 direct slave pci write mode. a value of 0 indicates the pci 9080 should disconnect when the direct slave write fifo is full. a value of 1 indicates the pci 9080 should de- assert trdy# when the write fifo is full. yes yes 0 31:28 pci target retry delay clocks. contains the value (multiplied by 8) of the number of pci bus clocks after receiving a pci local read or write access and not successfully completing a transfer. only pertains to direct slave writes when bit 27 is set to 1. yes yes 4 (32 clocks)
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 62 version 0.93 4. 4 .8 (dmrr; pci:1ch, loc:9ch) local range register for direct master to pci table 4 - 40 . (lbrd0; pci:18h, loc:98h) local address space 0/expansion rom bus region descriptor register field description read write value after reset 15:0 reserved (64 kb increments). yes no 0 31:16 specifies which local address bits to use for decoding a local to pci bus access. each of the bits corresponds to a pci address bit. bit 31 corresponds to address bit 31. write a value of 1 to all bits that must be included in decode and a 0 to all others. this range register is used for direct master memory, i/o, or configuration accesses. yes yes 0 4. 4 .9 (dmlbam; pci:20h, loc:a0h) local bus base address register for direct master to pci memory table 4 - 41 . (dmlbam; pci:20h, loc:a0h) local bus base address register for direct master to pci memory field description read write value after reset 15:0 reserved. yes no 0 31:16 assigns a value to the bits to use for decoding a local to pci memory access. yes yes 0 4. 4 .10 (dmlbai; pci:24h, loc:a4h) local base address register for direct master to pci io/cfg table 4 - 42 . (dmlbai; pci:24h, loc:a4h) local base address register for direct master to pci io/cfg field description read write value after reset 15:0 reserved. yes no 0 31:16 assigns a value to the bits to use for decoding a local to pci i/o or configuration access. this base address is used for both direct master i/o and configuration accesses. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 63 version 0.93 4. 4 .11 (dmpbam; pci:28h, loc:a8h) pci base address (remap) register for direct master to pci memory table 4 - 43 . (dmpbam; pci:28h, loc:a8h) pci base address (remap) register for direct master to pci memory field description read write value after reset 0 direct master memory access enable. a value of 1 enables decode of direct master memory accesses. a value of 0 disables decode of direct master memory accesses. yes yes 0 1 direct master i/o access enable. a value of 1 enables decode of direct master i/o accesses. a value of 0 disables decode of direct master i/o accesses. yes yes 0 2 llock# input enable. a value of 1 enables llock# input, enabling pci-locked sequences. a value of 0 disables the llock# input. yes yes 0 12, 3 direct master read prefetch size control. values: 00 = the pci 9080 continues to prefetch read data from the pci bus until the direct master access is finished. this may result in an additional 4 unneeded lwords being prefetched from the pci bus. 01 = prefetch up to 4 lwords from the pci bus 10 = prefetch up to 8 lwords from the pci bus 11 = prefetch up to 16 lwords from the pci bus if pci memory prefetch is not wanted, performs a direct master single cycle. the direct master burst reads must not exceed the programmed limit. yes yes 00 4 direct master pci read mode. a value of 0 indicates the pci 9080 should release the pci bus when the read fifo becomes full. a value of 1 indicates the pci 9080 should keep the pci bus and de-assert irdy when the read fifo becomes full. yes yes 0 10, 8:5 programmable almost full flag. when the number of entries in the 32 word direct master write fifo exceeds this value, the output pin dmpaf# is asserted low. yes yes 000 9 write and invalidate mode. when set to 1, the pci 9080 waits for 8 or 16 lwords to be written from the local bus before starting pci access. when set, all local direct master to pci write accesses must be 8 or 16 lword bursts. yes yes 0 11 direct master prefetch limit. if set to 1, don?t prefetch past 4 k (4098 bytes) boundaries. yes yes 0 13 i/o remap select. when set to 1, forces pci address bits [31:16] to all zeros. when set to 0, uses bits [31:16] of this register as pci address bits [31:16]. yes yes 0 15:14 direct master write delay. this register is used to delay the pci bus request after direct master burst write cycle has started. values: 00 = no delay; start the cycle immediately 01 = delay 4 pci clocks 10 = delay 8 pci clocks 11 = delay 16 pci clocks yes yes 00 31:16 remap of local to pci space into a pci address space. the bits in this register remap (replace) the local address bits used in decode as the pci address bits. this pci remap address is used for both direct master memory and i/o accesses. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 64 version 0.93 4. 4 .12 (dmcfga; pci:2ch, loc:ach) pci configuration address register for direct master to pci io/cfg table 4 - 44 . (dmcfga; pci:2ch, loc:ach) pci configuration address register for direct master to pci io/cfg field description read write value after reset 1:0 configuration type (00=type 0, 01=type 1). yes yes 0 7:2 register number. if different register read/write is needed, this register value must be programmed and a new pci configuration cycle must be generated. yes yes 0 10:8 function number. yes yes 0 15:11 device number. yes yes 0 23:16 bus number. yes yes 0 30:24 reserved. yes no 0 31 configuration enable. a value of 1 allows local to pci i/o accesses to be converted to a pci configuration cycle. the parameters in this table are used to generate the pci configuration address. yes yes 0 4. 4 .13 (las1rr; pci:f0h, loc:170h) local address space 1 range register for pci to local bus table 4 - 45 . (las1rr; pci:f0h, loc:170h) local address space 1 range register for pci to local bus field description read write value after reset 0 memory space indicator. a value of 0 indicates local address space 1 maps into pci memory space. a value of 1 indicates address space 1 maps into pci i/o space. yes yes 0 2:1 if mapped into memory space, encoding is as follows: 2/1 meaning 0 0 locate anywhere in 32 bit pci address space 0 1 locate below 1 mb in pci address space 1 0 locate anywhere in 64 bit pci address space 1 1 reserved if mapped into i/o space, bit 1 must be set to 0. bit 2 is included with bits [31:3] to indicate decoding range. yes yes 0 3 if mapped into memory space, a value of 1 indicates reads are prefetchable (bit has no effect on the operation of the pci 9080, but is for system status). if mapped into i/o space, bit is included with bits [31:2] to indicate decoding range. yes yes 0 31:4 specifies which pci address bits to use for decoding a pci access to local bus space 1. each of the bits corresponds to a pci address b it. bit 31 corresponds to address bit 31. write a value of 1 to all bits that must be included in decode and a 0 to all others (used in conjunction with pci configuration register ch 1). default is 1 mb. yes yes fff0000h
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 65 version 0.93 4. 4 .14 (las1ba; pci:f4h, loc:174h) local address space 1 local base address (remap) register table 4 - 46 . (las1ba; pci:f4h, loc:174h) local address space 1 local base address (remap) register field description read write value after reset 0 space 1 enabl e. a value of 1 enables decoding of pci addresses for direct slave access to local space 1. a value of 0 disables decoding. if this bit is set to 0, the pci bios may not allocate (assign) the base address for space 0. yes yes 0 1 reserved. yes no 0 3:2 if local space 1 is mapped into memory space, bits are not used. if mapped into i/o space, bit is included with bits [31:4] for remapping. yes yes 0 31:4 remap of pci address to local address space 1 into a local address space. the bits in this register r emap (replace) the pci address bits used in decode as the local address bits. yes yes 0 4. 4 .15 (lbrd1; pci:f8h, loc:178h) local address space 1 bus region descriptor register table 4 - 47 . (lbrd1; pci:f8h, loc:178h) local address space 1 bus region descriptor register field description read write value after reset 1:0 memory space 1 local bus width. a value of 00 indicates a bus width of 8 bits, a value of 01 indicates a bus width of 16 bits and a value of 10 or 11 indica tes a bus width of 32 bits. yes yes s = 01 j = 11 c = 11 5:2 memory space 1 internal wait states (data to data; bits 0-15). yes yes 0 6 memory space 1 ready input enable. a value of 1 enables ready input. a value of 0 disables the ready input. yes yes 0 7 memory space 1 bterm input enable. a value of 1 enables bterm input. a value of 0 disables the bterm input. if this bit is set to 0, the pci 9080 bursts 4 lword maximum at a time. yes yes 0 8 memory space 1 burst enable. a value of 1 enables bursting . a value of 0 disables bursting. if burst is disabled, the local bus performs continuous single cycles for burst pci read/write cycles. yes yes 0 9 memory space 1 prefetch disable. if mapped into memory space, a 0 enables read prefetching. a value of 1 disables prefetching. if prefetching is disabled, the pci 9080 disconnects after each memory read. yes yes 0 10 read prefetch count enable. when set to 1 and memory prefetching is enabled, the pci 9080 prefetches up to the number of lwords specified in the prefetch count. when set to 0, the pci 9080 ignores the count is ignored and continues prefetching until terminated by the pci bus. yes yes 0 14:11 prefetch counter. number of long words to prefetch during memory read cycles (0-15). yes yes 0 31:15 reserved. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 66 version 0.93 4. 5 runtime registers 4. 5 .1 (mbox0; pci:40h or 78h, loc:c0h) mailbox register 0 table 4 - 48 . (mbox0; pci:40h or 78h, loc:c0h) mailbox register 0 field description read write value after reset 31:0 32 bit mailbox register. yes yes 0 note: mailbox register 0 is replaced by the inbound queue port when the i 2 o feature is enabled (bit 0 in the qsr register is set). mailbox register 0 is always accessible at pci address 78h and local address c0h. 4. 5 .2 (mbox1; pci:44h or 7ch, loc:c4h) mailbox register 1 table 4 - 49 . (mbox1; pci:44h or 7ch, loc:c4h) mailbox register 1 field description read write value after reset 31:0 32 bit mailbox register. yes yes 0 note: mailbox register 1 is replaced by the outbound queue port when the i 2 o feature is enabled (bit 0 in the qsr register is set). mailbox register 1 is always accessible at pci address 7ch and local address c4h. 4. 5 .3 (mbox2; pci:48h, loc:c8h) mailbox register 2 table 4 - 50 . (mbox2; pci:48h, loc:c8h) mailbox register 2 field description read write value after reset 31:0 32 bit mailbox register. yes yes 0 4. 5 .4 (mbox3; pci:4ch, loc:cch) mailbox register 3 table 4 - 51 . (mbox3; pci:4ch, loc:cch) mailbox register 3 field description read write value after reset 31:0 32 bit mailbox register. yes yes 0 4. 5 .5 (mbox4; pci:50h, loc:d0h) mailbox register 4 table 4 - 52 . (mbox4; pci:50h, loc:d0h) mailbox register 4 field description read write value after reset 31:0 32 bit mailbox register. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 67 version 0.93 4. 5 .6 (mbox5; pci:54h, loc:d4h) mailbox register 5 table 4 - 53 . (mbox5; pci:54h, loc:d4h) mailbox register 5 field description read write value after reset 31:0 32 bit mailbox register. yes yes 0 4. 5 .7 (mbox6; pci:58h, loc:d8h) mailbox register 6 table 4 - 54 . (mbox6; pci:58h, loc:d8h) mailbox register 6 field description read write value after reset 31:0 32 bit mailbox register. yes yes 0 4. 5 .8 (mbox7; pci:5ch, loc:dch) mailbox register 7 table 4 - 55 . (mbox7; pci:5ch, loc:dch) mailbox register 7 field description read write value after reset 31:0 32 bit mailbox register. yes yes 0 4. 5 .9 (p2ldbell; pci:60h, loc:e0h) pci to local doorbell register table 4 - 56 . (p2ldbell; pci:60h, loc:e0h) pci to local doorbell register field description read write value after reset 31:0 doorbell register. a pci master can write to this register and generate a local interrupt to the local processor. the local processor can then read this register to determine which doorbell bit was asserted. the pci master sets a doo rbell by writing a 1 to a particular bit. the local processor can clear a doorbell bit by writing a 1 to that bit position. yes yes/clr 0 4. 5 .10 (l2pdbell; pci:64h, loc:e4h) local to pci doorbell register table 4 - 57 . (l2pdbell; pci:64h, loc:e4h) local to pci doorbell register field description read write value after reset 31:0 doorbell register. the local processor can write to this register and generate a pci interrupt. a pci master can then read this register to determine which doorbell bit was asserted. the local processor sets a doorbell by writing a 1 to a particular bit. the pci master can clear a doorbell bit by writing a 1 to that bit position. yes yes/clr 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 68 version 0.93 4. 5 .11 (intcsr; pci:68h, loc:e8h) interrupt control/status table 4 - 58 . (intcsr; pci:68h, loc:e8h) interrupt control/status field description read write value after reset 0 enable local bus lserr#. a value of 1 enables the pci 9080 to assert lserr# interrupt output when the pci bus target abort or master abort status bit is set in the pci status configuration register. yes yes 0 1 enable local bus lserr# when a pci parity error occurs during a pci 9080 master transfer or a pci 9080 slave access. yes yes 0 2 generate pci bus serr#. when this bit is set to 0, writing a 1 generates a pci bus serr#. yes yes 0 3 mailbox interrupt enable. a value of 1 enables a local interrupt to be generated when the pci bus writes to mailbox registers 0-3. to clear the local interrupt, the loca l master must read the mailbox. used in conjunction with local interrupt enable. yes yes 0 7:4 reserved. yes no 0 8 pci interrupt enable. a value of 1 enables pci interrupts. yes yes 1 9 pci doorbell interrupt enable. a value of 1 enables doorbell interrupts. used in conjunction with pci interrupt enable. clearing the doorbell interrupt bits that caused the interrupt also clears the interrupt. yes yes 0 10 pci abort interrupt enable. a value of 1 enables a master abort or master detect of a target abort to generate a pci interrupt. used in conjunction with pci interrupt enable. clearing the abort status bits also clears the pci interrupt. yes yes 0 11 pci local interrupt enable. a value of 1 enables a local interrupt input to generate a pci interrupt. use in conjunction with pci interrupt enable. clearing the local bus cause of the interrupt also clears the interrupt. yes yes 0 12 retry abort enable. a value of 1 enables the pci 9080 to treat 256 master consecutive retries to a target as a target abort. a value of 0 enables the pci 9080 to attempt master retries indefinitely. yes yes 0 13 a value of 1 indicates the pci doorbell interrupt is active. yes no 0 14 a value of 1 indicates the pci abort interrupt is active. yes no 0 15 a value of 1 indicates the local interrupt is active ( linti#). yes no 0 16 local interrupt output enable. a value of 1 enables local interrupt output. yes yes 1 17 local doorbell interrupt enable. a value of 1 enables doorbell interrupts. used in conjunction with local interrupt enable. clearing the local doorbell interrupt bits that caused the interrupt also clears the interrupt. yes yes 0 18 local dma channel 0 interrupt enable. a value of 1 enables dma channel 0 interrupts. used in conjunction with local interrupt enable. clearing the dma status bits also clears the interrupt. yes yes 0 19 local dma channel 1 interrupt enable. a value of 1 enables dma channel 1 interrupts. used in conjunction with local interrupt enable. clearing the dma status bits also clears the inte rrupt. yes yes 0 20 a value of 1 indicates the local doorbell interrupt is active. yes no 0 21 a value of 1 indicates the dma ch 0 interrupt is active. yes no 0 22 a value of 1 indicates the dma ch 1 interrupt is active. yes no 0 23 a value of 1 indicates the bist interrupt is active. the bist (built in self test) interrupt is generated by writing a 1 to bit 6 of the pci configuration bist register. clearing bit 6 clears the interrupt. refer to the bist register for a description of self test. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 69 version 0.93 table 4-58. (intcsr; pci:68h, loc:e8h) interrupt control/status (continued) 24 a value of 0 indicates a direct master was the bus master during a master or target abort. (not valid until abort occurs.) yes no 1 25 a value of 0 indicates dma ch 0 was the bus master during a master or target abort. (not valid until abort occurs.) yes no 1 26 a value of 0 indicates dma ch 1 was the bus master during a master or target abort. (not valid until abort occurs.) yes no 1 27 a value of 0 indicates a target abort was generated by the pci 9080 after 256 consecutive master retries to a target. (not valid until abort occurs.) yes no 1 28 a value of 1 indicates the pci wrote data to the mailbox #0. enabled only if mboxintenb is enabled (bit 3 high). yes no 0 29 a value of 1 indicates the pci wrote data to the mailbox #1. enabled only if mboxintenb is enabled (bit 3 high). yes no 0 30 a value of 1 indicates the pci wrote data to the mailbox #2. enabled only if mboxintenb is en abled (bit 3 high). yes no 0 31 a value of 1 indicates the pci wrote data to the mailbox #3. enabled only if mboxintenb is enabled (bit 3 high). yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 70 version 0.93 4. 5 .12 (cntrl; pci:6ch, loc:ech) eeprom control, pci command codes, user i/o control, init control register table 4 - 59 . (cntrl; pci:6ch, loc:ech) eeprom control, pci command codes, user i/o control, init control register field description read write value after reset 3:0 pci read command code for dma. this pci command is sent out during dma read cycles. yes yes 1110 7:4 pci write command code for dma. this pci command is sent out during dma write cycles. yes yes 0111 11:8 pci memory read command code for direct master. this pci command is sent out during direct master read cycles. yes yes 0110 15:12 pci memory write command code for direct master. this pci command is sent out during direct master write cycles. yes yes 0111 16 general purpose output. a value of 1 causes the usero output to go high. a value of 0 causes the output to go low. yes yes 1 17 general purpose input. a value of 1 indicates the useri input pin is high. a value of 0 indicates the useri pin is low. yes no ? 23:18 reserved. yes no 0 24 eeprom clock for local or pci bus reads or writes to eeprom. toggling this bit generates an eeprom clock. (refer to the manufacturer?s data sheet for the particular eeprom being used.) yes yes 0 25 eeprom chip select. for local or pci bus reads or writes to eeprom, setting this bit to 1 provides the eeprom chip s elect. yes yes 0 26 write bit to eeprom. for writes, this output bit is the input to the eeprom. it is clocked into the eeprom by the eeprom clock. yes yes 0 27 read eeprom data bit. for reads, this input bit is the output of the eeprom. it is clocked out of the eeprom by the eeprom clock. yes no ? 28 eeprom present. a value of 1 indicates an eeprom is present. yes no 0 29 reload configuration registers. when this bit is set to 0, writing a 1 causes the pci 9080 to reload the pci configuration registers from eeprom. yes yes 0 30 pci adapter software reset. a value of 1 written to this bit holds the local bus logic in the pci 9080 reset and lreseto# asserted. the contents of the pci configuration registers and shared run time registers will not be reset. software reset can only be cleared from the pci bus. (local bus remains reset until this bit is cleared.) yes yes 0 31 local init status. a value of 1 indicates local init done. responses to pci accesses are retrys until this bit is set. while input pin nb# is asserted low, this bit is forced to 1. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 71 version 0.93 4. 5 .13 (pcihidr; pci:70h, loc:f0h) pci permanent configuration id register table 4 - 60 . (pcihidr; pci:70h, loc:f0h) pci permanent configuration id register field description read write value after reset 15:0 permanent vendor id. identifies the manufacturer of the device. hardcoded to the pci sig issued vendor id of plx (10b5h). yes no 10b5h 31:16 permanent device id. identifies the particular device. hardcoded to the plx part number for pci interface chip pci 9080. yes no 9080h 4. 5 .14 (pcihrev; pci:74h, loc:f4h) pci permanent revision id register table 4 - 61 . (pcihrev; pci:74h, loc:f4h) pci permanent revision id register field description read write value after reset 7:0 permanent revision id. hardcoded to the silicon revision of the pci 9080. yes no current rev #
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 72 version 0.93 4. 6 dma registers 4. 6 .1 (dmamode0; pci:80h, loc:100h) dma channel 0 mode register table 4 - 62 . (dmamode0; pci:80h, loc:100h) dma channel 0 mode register field description read write value after reset 1:0 local bus width. a value of 00 indicates a bus width of 8 bits, a value of 01 indicates a bus width of 16 bits and a value of 10 or 11 indicates a bus width of 32 bits. yes yes s = 01 j = 11 c = 11 5:2 internal wait states (data to data). yes yes 0 6 ready input enable. a value of 1 enables ready input. a value of 0 disables the ready input. yes yes 0 7 bterm input enable. a value of 1 enables bterm input. a value of 0 disables the bterm input. if this bit is set to 0, the pci 9080 bursts 4 lword maximum at a time. yes yes 0 8 local burst enable. a value of 1 enables bursting. a value of 0 disables local bursting. if burst is disabled, the local bus performs continuous single cycles for burst pci read/write cycles. yes yes 0 9 chaining. a value of 1 indicates chaining mode is enabled. for chaining mode, the dma source address, destination address and byte count are loaded from memory in pci or local address spaces. a value of 0 indicates nonchaining mode is enabled. yes yes 0 10 done interrupt enable. a value of 1 enables interrupt when done. a value of 0 disables interrupt when done. if the dma clear count mode is enabled, the interrupt won?t occur until the byte count is cleared. yes yes 0 11 local addressing mode. a value of 1 indicates local address la[31:2] to be held constant. a value of 0 indicates local address is incremented. yes yes 0 12 demand mode. a value of 1 causes the d ma controller to operate in demand mode. in demand mode the dma controller transfers data when its dreq# input is asserted. it asserts dack# to indicate the current local bus transfer is in response to the dreq# input. the dma controller transfers lwords (32 bits) of data. this may result in multiple transfers for an 8- or 16 -bit bus. yes yes 0 13 write and invalidate mode for dma transfers. when set to 1, the pci 9080 performs write and invalidate cycles to the pci bus. the pci 9080 supports write and invalidate sizes of 8 or 16 lwords. the size is specified in the pci cache line size register. if a size other than 8 or 16 is specified, the pci 9080 performs write transfers rather than write and invalidate transfers. transfers must start and end at the cache line boundaries. yes yes 0 14 dma eot (end of transfer) enable. a value of 1 enables the eot input pin. a value of 0 disables the eot input pin. yes yes 0 15 dma stop data transfer mode. a value of 0 sends a blast to terminate dma transfer. a value of 1 indicates an eot asserted or dreq# negated during demand mode dma terminates the dma transfer. yes yes 0 16 dma clear count mode. when set to 1, the byte count in each chaining descriptor, if it is in local memory, is cleared when the corresponding dma transfer is complete. note: if chaining descriptor is in pci memory, the count will not be cleared. yes yes 0 17 dma channel 0 interrupt select. a value of 1 routes the dma channel 0 interrupt to the pci interrupt. a value of 0 routes the dma channel 0 i nterrupt to the local bus interrupt. yes yes 0 31:18 reserved. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 73 version 0.93 4. 6 .2 (dmapadr0; pci:84h, loc:104h) dma channel 0 pci address register table 4 - 63 . (dmapadr0; pci:84h, loc:104h) dma channel 0 pci address register field description read write value after reset 31:0 pci address register. indicates from where in the pci memory space the dma transfers (reads or writes) start. yes yes 0 4. 6 .3 (dmaladr0; pci:88h, loc:108h) dma channel 0 local address register table 4 - 64 . (dmaladr0; pci:88h, loc:108h) dma channel 0 local address register field description read write value after reset 31:0 local address register. indicates from where in the local memory space the dma transfers (reads or writes) start. yes yes 0 4. 6 .4 (dmasiz0; pci:8ch, loc:10ch) dma channel 0 transfer size (bytes) register table 4 - 65 . (dmasiz0; pci:8ch, loc:10ch) dma channel 0 transfer size (bytes) register field description read write value after reset 22:0 dma transfer size (bytes). indicates number of bytes to be transferred during dma operation. yes yes 0 31:23 reserved. yes no 0 4. 6 .5 (dmadpr0; pci:90h, loc:110h) dma channel 0 descriptor pointer register table 4 - 66 . (dmadpr0; pci:90h, loc:110h) dma channel 0 descriptor pointer register field description read write value after reset 0 descriptor location. a value of 1 indicates the pci address space. a value of 0 indicates the local address space. yes yes 0 1 end of chain. a value of 1 indicates end of chain. a value of 0 indicates not end of chain descriptor. (same as nonchaining mode.) yes yes 0 2 interrupt after terminal count. a value of 1 causes an interrupt to be generated after the terminal count for this descriptor is reached. a value of 0 disables interrupts from being generated. yes yes 0 3 direction of transfer. a value of 1 indicates transfers from local bus to pci bus. a value of 0 indicates transfers from pci bus to local bu s. yes yes 0 31:4 next descriptor address. quad word aligned (bit [3:0] = 0000). yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 74 version 0.93 4. 6 .6 (dmamode1; pci:94h, loc:114h) dma channel 1 mode register table 4 - 67 . (dmamode1; pci:94h, loc:114h) dma channel 1 mode register field description read write value after reset 1:0 local bus width. a value of 00 indicates a bus width of 8 bits, a value of 01 indicates a bus width of 16 bits and a value of 10 or 11 indicates a bus width of 32 bits. yes yes s = 01 j = 11 c = 1 1 5:2 internal wait states (data to data). yes yes 0 6 ready input enable. a value of 1 enables ready input. a value of 0 disables the ready input. yes yes 0 7 bterm input enable. a value of 1 enables bterm input. a value of 0 disables the bterm input. if this bit is set to 0, the pci 9080 bursts 4 lword maximum at a time. yes yes 0 8 local burst enable. a value of 1 enables bursting. a value of 0 disables local bursting. if burst is disabled, the local bus performs continuous single cycles for burst pci read/write cycles. yes yes 0 9 chaining. a value of 1 indicates chaining mode enabled. for chaining mode, the dma source address, destination address and byte count are loaded from memory in pci or local address spaces. a value of 0 indicates nonchaining mode enabled. yes yes 0 10 done interrupt enable. a value of 1 enables interrupt when done. a value of 0 disables interrupt when done. if the dma clear count mode is enabled, the interrupt won?t occur until the byte count is cleared. yes yes 0 11 local addressing mode. a value of 1 indicates local address la[31:2] to be held constant. a value of 0 indicates local address is incremented. yes yes 0 12 demand mode. a value of 1 causes the dma controller to operate in demand mode. in demand mode the dma controller transfers data when its dreq# input is asserted. it asserts dack# to indicate the current local bus transfer is in response to the dreq# input. the dma controller transfers lwords (32bits) of data. this may result in multiple transfers for an 8- or 16 -bit bus. yes yes 0 13 write and invalidate mode for dma transfers. when set to 1, the pci 9080 performs write and invalidate cycles to the pci bus. the pci 9080 supports write and invalidate sizes of 8 or 16 lwords. the size is specified in the pci cache line size register. if a size other than 8 or 16 is specified, the pci 9080 performs write transfers rather than write and invalidate transfers. transfers must start and end at the cache line boundaries. yes yes 0 14 dma eot (end of transfer) enable. a value of 1 enables eot output pin. a value of 0 disables the eot output pin. yes yes 0 15 dma stop data transfer mode. a value of 0 blast terminates dma transfer. a value of 1 indicates eot asserted or dreq# negated during demand mode dma terminates the dma transfer. yes yes 0 16 dma clear count mode. when set to 1, the byte count in each chaining descriptor, if it is in local memory, is cleared when the corresponding dma transfer is complete. note: if chaining descriptor is in pci memory, the count will not be cleared. yes yes 0 17 dma channel 1 interrupt select. a value of 1 routes the dma channel 1 interrupt to the pci interrupt. a value of 0 routes the dma channel 1 interrupt to the local bus interrupt. yes yes 0 31:18 reserved. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 75 version 0.93 4. 6 .7 (dmapadr1; pci:98h, loc:118h) dma channel 1 pci address register table 4 - 68 . (dmapadr1; pci:98h, loc:118h) dma channel 1 pci address register field description read write value after reset 31:0 pci data address register. indicates from where in the pci memory space the dma transfers (reads or writes) start. yes yes 0 4. 6 .8 (dmaladr1; pci:9ch, loc:11ch) dma channel 1 local address register table 4 - 69 . (dmaladr1; pci:9ch, loc:11ch) dma channel 1 local address register field description read write value after reset 31:0 local data address register. indicates from where in the local memory space the dma transfers (reads or writes) start. yes yes 0 4. 6 .9 (dmasiz1; pci:a0h, loc:120h) dma channel 1 transfer size (bytes) register table 4 - 70 . (dmasiz1; pci:a0h, loc:120h) dma channel 1 transfer size (bytes) register field description read write value after reset 22:0 dma transfer size (bytes). indicates the number of bytes to transfer during a dma operation. yes yes 0 31:23 reserved. yes no 0 4. 6 .10 (dmadpr1; pci:a4h, loc:124h) dma channel 1 descriptor pointer register table 4 - 71 . (dmadpr1; pci:a4h, loc:124h) dma channel 1 descriptor pointer register field description read write value after reset 0 descriptor location. a value of 1 indicates the pci address space. a value of 0 indicates the local address space. yes yes 0 1 end of chain. a value of 1 indicates end of chain. a value of 0 indicates not end of chain descriptor. (same as nonchaining mode.) yes yes 0 2 interrupt after terminal count. a value of 1 causes an interrupt to be generated after the terminal count for this descriptor is reached. a value of 0 disables in terrupts from being generated. yes yes 0 3 direction of transfer. a value of 1 indicates transfers from local bus to pci bus. a value of 0 indicates transfers from pci bus to local bus. yes yes 0 31:4 next descriptor address. quad word aligned (bit [3:0] = 0000). yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 76 version 0.93 4. 6 .11 (dmacsr0; pci:a8h, loc:128h) dma channel 0 command/status register table 4 - 72 . (dmacsr0; pci:a8h, loc:128h) dma channel 0 command/status register field description read write value after reset 0 channel 0 enable. a value of 1 enables the channel to transfer data. a value of 0 disables the channel from starting a dma transfer and if in the process of transferring data suspend transfer (pause). yes yes 0 1 channel 0 start. writing a 1 to this bit causes the channel to start transferring data if the channel is enabled. no yes/set 0 2 channel 0 abort. writing a 1 to this bit causes the channel to abort the current transfer. the channel enable bit must be cleared. the channel complete bit is set w hen the abort is complete. no yes/set 0 3 writing a 1 to this bit clears channel 0 interrupts. no yes/clr 0 4 channel 0 done. a value of 1 indicates this channel?s transfer is complete. a value of 0 indicates the channel transfer is not complete. yes no 1 7:5 reserved. yes no 0 4. 6 .12 (dmacsr1; pci:a9h, loc:129h) dma channel 1 command/status register table 4 - 73 . (dmacsr1; pci:a9h, loc:129h) dma channel 1 command/status register field description read write value after reset 0 channel 1 enable. a value of 1 enables the channel to transfer data. a value of 0 disables the channel from starting a dma transfer and if in the process of transferring data suspend transfer (pause). yes yes 0 1 channel 1 start. writing a 1 to this bit causes the channel to start transferring data if the channel is enabled. no yes/set 0 2 channel 1 abort. writing a 1 to this bit causes the channel to abort the current transfer. the channel enable bit must be cleared. the channel complete bit i s set when the abort is complete. no yes/set 0 3 writing a 1 to this bit clears channel 1 interrupts. no yes/clr 0 4 channel 1 done. a value of 1 indicates this channel?s transfer is complete. a value of 0 indicates the channel transfer is not complete. yes no 1 7:5 reserved. yes no 0 4. 6 .13 (dmaarb; pci:ach, loc:12ch) dma arbitration register same as local arbitration register (larbr) at address pci:08h, loc:88h ( table 4-35 , ? (larbr; pci:08h or ach, loc:88h or 12ch) local/dma arbitration register ?).
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 77 version 0.93 4. 6 .14 (dmathr; pci:b0h, loc:130h) dma threshold register table 4 - 74 . (dmathr; pci:b0h, loc:130h) dma threshold register field description read write value after reset 3:0 dma channel 0 pci to local almost full (c0plaf). number of pairs of full entries (minus 1) in fifo before requesting local bus for writes. (c0plaf+1) + (c0plae+1) should be fifo depth of 32. yes yes 0 7:4 dma channel 0 local to pci almo st empty (c0lpae). number of empty entries (minus 1) in fifo before requesting local bus for reads. (c0lpaf+1) + (c0lpae+1) should be fifo depth of 32. yes yes 0 11:8 dma channel 0 local to pci almost full (c0lpaf). number of pairs of full entries (minus 1) in fifo before requesting pci bus for writes. yes yes 0 15:12 dma channel 0 pci to local almost empty (c0plae). number of empty entries (minus 1) in fifo before requesting pci bus for reads. yes yes 0 19:16 dma channel 1 pci to local almost full (c1 plaf). number of full entries (minus 1) in fifo before requesting local bus for writes. (c1plaf+1) + (c1plae+1) should be fifo depth of 16. yes yes 0 23:20 dma channel 1 local to pci almost empty (c1lpae). number of empty entries (minus 1) in fifo before requesting local bus for reads. (c1plaf+1) + (c1plae+1) should be fifo depth of 16 yes yes 0 27:24 dma channel 1 local to pci almost full (c1lpaf). number of full entries (minus 1) in fifo before requesting pci bus for writes. yes yes 0 31:28 dma channel 1 pci to local almost empty (c1plae). number of empty entries (minus 1) in fifo before requesting pci bus for reads. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 78 version 0.93 4. 7 messaging queue registers 4. 7 .1 (oplfis; pci:30h, loc:b0) outbound post list fifo interrupt status register table 4 - 75 . (oplfis; pci:30h, loc:b0) outbound post list fifo interrupt status register field description read write value after reset 2:0 reserved. yes no 0 3 outbound post list fifo interrupt. this bit is set when the outbound pos t list fifo is not empty. this bit is not effected by the interrupt mask bit. yes no 0 31:4 reserved. yes no 0 4. 7 .2 (oplfim; pci:34h, loc:b4) outbound post list fifo interrupt mask register table 4 - 76 . (oplfim; pci:34h, loc:b4) outbound post list fifo interrupt mask register field description read write value after reset 2:0 reserved. yes no 0 3 outbound post list fifo interrupt mask. interrupt is masked when this bit is set. yes yes 1 31:4 reserved. yes no 0 4. 7 .3 (iqp; pci:40h) inbound queue port table 4 - 77 . (iqp; pci:40h) inbound queue port field description read write value after reset 31:0 value written by pci master is stored into the inbound post list fifo, which is located in local memory at the address pointed to by the queue base address + fifo size + inbound post head pointer. from the time of the pci write until the local memory write and update of the inbound post queue head pointer, further accesses to this register result in a retry. a local interrupt is generated when the inbound post list fifo is not empty. when the port is read by the pci master, the value is read from the inbound free list fifo, which is located in local memory at the address pointed to by the queue base address + inbound free tail pointer. if the fifo is empty, a value of fffffffh is returned. pci pci 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 79 version 0.93 4. 7 .4 (oqp; pci:44h) outbound queue port table 4 - 78 . (oqp; pci:44h) outbound queue port field description read write value after reset 31:0 value written by pci master is stored into the outbound free list fifo, which is located in local memory at the address pointed to by the queue base address + (3*fifo size) + outbound free head pointer. from the time of the pci write until the local memory write and update of the outbound free head pointer, further accesses to this register result in a retry. if the fifo fills up, a local lserr interrupt is generated. when the port is read by the pci master, the value is read from the outbound post list fifo, which is located in local memory at the address pointed to by the queue base address + (2*fifo size) + outbound post tail pointer. if the fifo is empty, a value of fffffffh is returned. a pci interrupt is generated if the outbound post list fifo is not empty. pci pci 0 4. 7 .5 (mqcr; pci:c0h, loc:140h) messaging queue configuration register table 4 - 79 . (mqcr; pci:c0h, loc:140h) messaging queue configuration register field description read write value after reset 0 queue enable. a value of 1 allows accesses to the inbound and outbound queue ports. if cleared to 0, writes are accepted but ignored and reads return ffffffff. all pointer initialization and frame allocation should be completed before enabling this bit. yes yes 0 5:1 circular fifo size. defines the size of one of the circular fifos. each of the four fifos are the same size. each fifo entry is one 32 bit word. fifo size encoding max entries fifo total fifo 5:1 per fifo siz e memory 00001 4k entries 16 kb 64 kb 00010 8k entries 32 kb 128 kb 00100 16k entries 64 kb 256 kb 01000 32k entries 128 kb 512 kb 10000 64k entries 256 kb 1 mb yes yes 00001 31:6 reserved. yes no 0 4. 7 .6 (qbar; pci:c4h, loc:144h) queue base address register table 4 - 80 . (qbar; pci:c4h, loc:144h) queue base address register field description read write value after reset 19:0 reserved. yes no 0 31:20 queue base address. local memory base address of the inbound and outbound queues (4 contiguous and equal size fifos). the queue base address must be aligned on a 1 mb boundary. yes yes 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 80 version 0.93 4. 7 .7 (ifhpr; pci:c8h, loc:148h) inbound free head pointer register table 4 - 81 . (ifhpr; pci:c8h, loc:148h) inbound free head pointer register field description read write value after reset 1:0 reserved. yes no 0 19:2 inbound free head pointer. local memory offset for inbound free list fifo. this register is initialized as (0*fifo size) and maintained by the local cpu software. yes yes 0 31:20 queue base address. yes no 0 4. 7 .8 (iftpr; pci:cch, loc:14ch) inbound free tail pointer register table 4 - 82 . (iftpr; pci:cch, loc:14ch) inbound free tail pointer register field description read write value after reset 1:0 reserved. yes no 0 19:2 inbound free tail pointer. local memory offset for inbound free list fifo. this register is initialized as (0*fifo size) by the local cpu software. it is maintained by the mu hardware and is incremented modulo the fifo size. yes yes 0 31:20 queue base address. yes no 0 4. 7 .9 (iphpr; pci:d0h, loc:150h) inbound post head pointer register table 4 - 83 . (iphpr; pci:d0h, loc:150h) inbound post head pointer register field description read write value after reset 1:0 reserved. yes no 0 19:2 inbound post head pointer. local memory offset for inbound post list fifo. this register is initialized as (1*fifo size) by the local cpu software. it is maintained by the mu hardware and is incremented modulo the fifo size. yes yes 0 31:20 queue base address. yes no 0 4. 7 .10 (iptpr; pci:d4h, loc:154h) inbound post tail pointer register table 4 - 84 . (iptpr; pci:d4h, loc:154h) inbound post tail pointer register field description read write value after reset 1:0 reserved. yes no 0 19:2 inbound post tail pointer. local memory offset for inbound post list fifo. this register is initialized as (1*fifo size) and maintained by the local cpu software. yes yes 0 31:20 queue base address. yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 81 version 0.93 4. 7 .11 (ofhpr; pci:d8h, loc:158h) outbound free head pointer register table 4 - 85 . (ofhpr; pci:d8h, loc:158h) outbound free head pointer register field description read write value after reset 1:0 reserved. yes no 0 19:2 outbound free head pointer. local memory offset for outbound free list fifo. this register is initialized as (3*fifo size) by the local cpu software and is maintained by the mu hardware and is incremented modulo the fifo size. yes yes 0 31:20 queue base address. yes no 0 4. 7 .12 (oftpr; pci:dch, loc:15ch) outbound free tail pointer register table 4 - 86 . (oftpr; pci:dch, loc:15ch) outbound free tail pointer register field description read write value after reset 1:0 reserved. yes no 0 19:2 outbound free tail pointer. local memory offset for outbound free list fifo. this register is initialized as (3*fifo size) and maintained by the local cpu software. yes yes 0 31:20 queue base address. yes no 0 4. 7 .13 (ophpr; pci:e0h, loc:160h) outbound post head pointer register table 4 - 87 . (ophpr; pci:e0h, loc:160h) outbound post head pointer register field description read write value after reset 1:0 reserved. yes no 0 19:2 outbound post head pointer. local memory offset for outbound post list fifo. this register is initialized as (2*fifo size) and maintained by the local cpu software. yes yes 0 31:20 queue base address. yes no 0 4. 7 .14 (optpr; pci:e4h, loc:164h) outbound post tail pointer register table 4 - 88 . (optpr; pci:e4h, loc:164h) outbound post tail pointer register field description read write value after reset 1:0 reserved. yes no 0 19:2 outbound post tail pointer. local memory offset for outbound post list fifo. this register is initialized as (2*fifo size) and maintained by the mu hardware and is incremented modulo the fifo size. yes yes 0 31:20 queue base address yes no 0
section 4 pci 9080 r egisters ? ? plx technology, inc., 1997 page 82 version 0.93 4. 7 .15 (qsr; pci:e8h, loc:168h) queue status/control register table 4 - 89 . (qsr; pci:e8h, loc:168h) queue status/control register field description read write value after reset 0 queue decode enable. when this bit is set, mailbox registers 0 and 1 are replaced by the inbound and outbound queue port registers. yes yes 0 1 queue local space select. when this bit is set to 0, use local address space 0 bus region descriptor for queue accesses. when this bit is set to 1, use local address space 1 bus region descriptor for queue accesses. yes yes 0 2 outbound post list fifo prefetch enable. when this bit is set, prefetching occurs from the outbound post list fifo if not empty. yes yes 0 3 inbound free list fifo prefetch enable. when this bit is set, prefetching occurs from the inbound free list fifo if not empty. yes yes 0 4 inbound post list fifo interrupt mask. interrupt is masked when bit is set. yes yes 1 5 inbound post list fifo interrupt. this bit is set when the inbound pos t list fifo is not empty. this bit is not effected by the interrupt mask bit. yes no 0 6 outbound free list fifo overflow interrupt mask. interrupt is masked when bit is set. yes yes 1 7 outbound free list fifo overflow interrupt. this bit is set when the outbound free list fifo becomes full. a local lserr (nmi) interrupt is generated. writing a 1 clears the interrupt. yes yes/clr 0 31:8 unused. yes no 0
section 5 pci 9080 pin description ? ? plx technology, inc., 1997 page 83 version 0.93 5. pin description 5. 1 pin summary the tables in this section describe the pci 9080 pins. table 5-1 through table 5-4 provide pin information common to all three local bus modes of operation (that is, c, j, and s modes): power and ground pin description eeprom interface pin description pci system bus interface pin description local bus mode and processor independent interface pin description the pins in table 5-5 through table 5-7 correspond to the local bus modes of the pci 9080: c bus mode interface pin description (32 -bit address/32 -bit data, nonmultiplexed) j bus mode interface pin description (32 -bit address/32 -bit data, multiplexed) s bus mode interface pin description (32 -bit address/16 -bit data, multiplexed) the following pins have internal pull-ups: admode, bigend#, bterm#, dreq0#, dreq1#, eedo, eesel, linti#, llock#, lreseti#, nb#, pcivolt, readyi#, s[2:0], and short#. the following pins have internal pull-downs: breq, lholda, test, useri, and waiti#. for a visual view of the chip pin layout, refer to figure 7-3 , ? 9080 pin out (s mode, j m ode, and c mode) ,? in section 7, ? package mechanical dimensions .? the following abbreviations are used in the tables: i/o input and output pin i input pin only o output pin only ts tri-state pin oc open collector pin tp totem pole pin sts sustained tri-state pin, driven high for 1 clk before float dts driven tri-state pin, driven high for 1/2 clk before float design notes: pull up/down (use 3 k w w - 10 k w w ). all local bus internal pull-ups go through a 2 k w resistor. all local bus internal pull-downs go through a 100 k w resistor. all local tri-state i/o pins should have external pull-ups. unspecified pins are not connected. note: for pci pins, do not pull up or pull down any pins unless the pci 9080 is being used in an embedded design. refer to the pci local bus specification , revision 2.1, page 123.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 84 version 0.93 5. 2 pinout common to all bus modes table 5 - 1 . power and ground pin description symbol signal name total pins pin type pin number function test test 1 i 49 test pin. pull high for test, low for normal operation. when test is pulled high, all outputs except usero (pin 27) are placed in tri-state. usero provides a nand-tree output when test is pulled high. pcivolt pci voltage select 1 i 170 high = select 5 v pci interface, low = select 3.3 v pci interface. vddl (core) power (+5 v) 6 i 53, 68, 105, 144, 157, 167 five volt power supply pins for core. liberal .01 f to .1 f decoupling capacitors should be placed near the pci 9080. vddh (pci) power (+5 v or +3.3 v) 3 i 38, 60, 83 power supply pins for pci bus pins. liberal .01 f to .1 f decoupling capacitors should be placed near the pci 9080. vddh (local) power (+5 v) 3 i 1, 124, 184 power supply pins for local bus pins. liberal .01 f to .1 f decoupling capacitors should be placed near the pci 9080. vss ground 20 i 22, 37, 45, 52, 59, 67, 75, 82, 90, 98, 104, 114, 123, 134, 143, 156, 166, 183, 193, 208 ground pins. table 5 - 2 . eeprom interface pin description symbol signal name total pins pin type pin number function eecs eeprom chip select 1 o tp 8 ma 176 eeprom chip select. eedi eeprom data in 1 o tp 8 ma 172 write data to eeprom. eedo eeprom data out 1 i 171 read data from eeprom. eesk serial data clock 1 o tp 8 ma 173 eeprom clock. short# load short 1 i 174 when active low, only five 32 -bit registers are loaded from the eeprom. when active high, all local configuration registers are also loaded from eeprom. eesel eeprom select 1 i 175 when high, use 93cs46 (1k bit) eeprom. when low, use 93cs56 (2k bit) eeprom. note: the eeprom interface operates at the core voltage (+5 v). the pci 9080 requires the use of a serial eeprom that can operate up to 1 mhz.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 85 version 0.93 table 5 - 3 . pci system bus interface pin description symbol signal name total pins pin type pin number function ad[31:0] address and data 32 i/o ts pci 32-36, 39-44, 46-47, 76-81, 84-89, 91-97 all multiplexed on the same pci pins. a bus transaction consists of an address phase followed by one or more data phases. the pci 9080 supports both read and write bursts. c/be[3:0]# bus command and byte enables 4 i/o ts pci 70-73 all multiplexed on the same pci pins. during the address phase of a transaction, c/be[3:0]# defines the bus command. during the data phase c/be[3:0]# are used as byte enables. refer to pci spec for further detail if needed. clk clock 1 i 54 provides timing for all transactions on pci and is an input to every pci device. pci operates up to 33 mhz. devsel# device select 1 i/o sts pci 64 when actively driven, indicates the driving device has decoded its address as the target of the current access. as an input, indicates whether any device on the bus is selected. frame# cycle frame 1 i/o sts pci 57 driven by the current master to indicate the beginning and duration of an access. frame# is asserted to indicate a bus transaction is beginning. while frame# is asserted, data transfers continue. when frame# is negated, the transaction is in the final data phase. gnt# grant 1 i 51 indicates to the agent that access to the bus is granted. every master has its own req# and gnt#. idsel initialization device select 1 i 63 used as a chip select during configuration read and write transactions. inta# interrupt a 1 o oc pci 55 used to request an interrupt. irdy# initiator ready 1 i/o sts pci 61 indicates the ability of the initiating agent (bus master) to complete the current data phase of the transaction. lock# lock 1 i/o sts pci 69 indicates an atomic operation that may require multiple transactions to complete. par parity 1 i/o ts pci 74 even parity across ad[31:0] and c/be[3:0]#. parity generation is required by all pci agents. par is stable and valid one clock after the address phase. for data phases, par is stable and valid one clock after either irdy# is asserted on a write transaction or trdy# is asserted on a read transaction. once par is valid, it remains valid until one clock after the completion of the current data phase. perr# parity error 1 i/o sts pci 65 the reporting of data parity errors during all pci transactions, except during a special cycle. req# request 1 o pci 50 indicates to the arbiter that this agent needs to use the bus. every master has its own gnt# and req#. rst# reset 1 i 56 used to bring pci-specific registers, sequencers and signals to a consistent state. serr# systems error 1 o oc pci 66 reports address parity errors, data parity errors on the special cycle command, or any other system error where the result will be catastrophic. stop# stop 1 i/o sts pci 62 indicates the current target is requesting the master to stop the current transaction. trdy# target ready 1 i/o sts pci 58 indicates the ability of the target agent (selected device) to complete the current data phase of the transaction.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 86 version 0.93 table 5 - 4 . local bus mode and processor independent interface pin description symbol signal name total pins pin type pin number function admode address decode mode 1 i 20 determines how s[2:0] are used to access the pci 9080 internal registers. bigend# big endian select 1 i 48 can be asserted during the local bus address phase of a direct master transfer or a configuration register access to specify use of big endian byte ordering. big endian byte order for direct master transfers or configuration register accesses is also programmable through configuration registers. bpclko buffered pci clock output 1 o tp 8 ma 168 provides a buffered pci clock output. breq bus request 1 i 169 asserted to indicate a local bus master requires the bus. if enabled through the pci 9080 configuration registers, the pci 9080 releases the bus during a dma transfer if this signal is asserted. breqo bus request out 1 o tp 8 ma 21 asserted to indicate the pci 9080 requires the bus to perform a direct pci to local bus access while a direct master access is pending on the local bus. it can be used with external logic to generate backoff to a local bus master. its operational parameters are set up through the pci 9080 configuration registers. btermo# burst terminate out 1 o dts 8 ma 28 asserted, along with readyo#, to request the break up of a burst and the start of a new address cycle (abort only). dack[1:0]# dma acknowledge outputs 2 o tp 8 ma 25, 30 when a channel is programmed through the configuration registers to operate in demand mode, its dack output indicates a dma transfer is being executed. dack0# corresponds to pci 9080 dma ch 0 and dack1# to dma ch 1. dmpaf# direct master programmable almost full 1 o tp 8 ma 8 direct master write fifo almost full status output. programmable through a configuration register. dp[3:0] data parity 4 i/o ts 8 ma 12-15 parity is even for each of up to 4 byte lanes on the local bus. parity is checked for writes to the pci 9080 or reads by the pci 9080. parity is generated for reads from the pci 9080 or writes by the pci 9080. dreq[1:0]# dma request inputs 2 i 24, 29 when a channel is programmed through the configuration registers to operate in demand mode, its dreq input serves as a dma request. dreq0# corresponds to pci 9080 dma ch 0 and dreq1# to dma ch 1. ldshold direct slave hold request 1 o tp 8 ma 165 asserted concurrent with lhold to indicate the pci 9080 is requesting use of the local bus in order to perform a direct slave transfer. linti# local interrupt in 1 i 151 when asserted low, causes a pci interrupt. linto# local interrupt out 1 o tp 8 ma 152 synchronous level output that remains asserted as long as an interrupt condition exists. if an edge level interrupt is required, disabling and then enabling local interrupts though the interrupt/control status register creates an edge if an interrupt condition still exists or a new interrupt condition occurs. llocko# bus lock 1 o tp 8 ma 7 indicates an atomic operation for a direct slave pci to local bus access may require multiple transactions to complete. lreseti# local reset input 1 i 150 resets the local bus portion of the pci 9080, the local configuration registers and the dma configuration registers. also causes the local reset output to be asserted.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 87 version 0.93 table 5-4. local bus mode and processor independent interface pin description (continued) symbol signal name total pins pin type pin number function lserr# system error interrupt output 1 o tp 8 ma 23 synchronous level output that is asserted when the pci bus target abort or master abort status bit is set in the pci status configuration register. if an edge level interrupt is required, disabling and then enabling lserr# interrupts through the interrupt/control status creates an edge if an interrupt condition still exists or a new interrupt condition occurs. mode[1:0] bus mode 2 i 9, 10 selects the bus operation mode of the pci 9080: bit 1 bit 0 bus mode 0 0 c 0 1 j 1 0 s 1 1 reserved nb# no local bus initialization 1 i 26 externally forces local init done bit in the init control register to 1. the init done bit is also programmable through local bus configuration accesses. the pci 9080 issues retrys to all pci accesses until the local init done bit is set. if this bit is not going to be set by a local processor, tie nb# low. pchk# data parity check 1 o tp 8 ma 16 parity is checked for writes to the pci 9080 or reads by the pci 9080. parity is checked for each byte lane with its byte enable asserted. asserted in the clock cycle following the data being checked if a parity error is detected. s[2:0] address select 3 i 17-19 if admode is high, internal pci 9080 registers are selected when la[31:29] match s[2:0]. if admode is low, the internal pci 9080 registers are selected when s0 is asserted low. useri user input 1 1 31 general purpose input that can be read from the pci 9080 configuration registers. usero user output 1 o tp 12 ma 27 general purpose output controlled from the pci 9080 configuration registers. waiti# wait input 1 i 6 can be asserted to cause the pci 9080 to insert wait states for local direct master accesses to the pci bus. can be thought of as a ready input for direct master accesses. waito# wait out 1 o ts 8 ma 149 indicates the pci 9080 programmable wait state generator status. waito# is asserted when wait states are being caused by the internal wait state generator. can be thought of as an output providing ready out status.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 88 version 0.93 5. 3 c bus mode pinout table 5 - 5 . c bus mode interface pin description c mode bus symbol signal name total pins pin type pin number function ads# address strobe 1 i/o ts 12 ma 154 indicates a valid address and the start of a new bus access. asserted for the first clock of a bus access. blast# burst last 1 i/o ts 8 ma 155 signal driven by the current local bus master to indicate the last transfer in a bus access. bterm# burst terminate 1 i 146 for processors that burst up to 4 lwords. if bterm# is disabled through the pci 9080 configuration registers, the pci 9080 also bursts up to 4 lwords. if enabled, the pci 9080 continues to burst until a bterm# input is asserted. bterm# is a ready input that breaks up a burst cycle and causes another address cycle to occur. used in conjunction with the pci 9080 programmable wait state generator. den# data enable 1 o ts 12 ma 145 used in conjunction with dt/r# to provide control for data transceivers attached to the local bus. dt/r# data transmit/receive 1 o ts 12 ma 138 used in conjunction with den# to provide control for data transceivers attached to the local bus. when asserted, the signal indicates the pci 9080 receives data. lw/r# write/read 1 i/o ts 12 ma 137 asserted low for reads and high for writes. llock# bus lock 1 i 153 indicates an atomic operation that may require multiple transactions to complete. used by the pci 9080 for direct local access to the pci bus. la[31:2] address bus 30 i/o ts 8 ma 136, 135, 133-125, 122-115, 113-106, 103-101 carries the upper 30 bits of the physical address bus. during bursts, la3 and la2 increment to indicate successive data cycles. ld[31:0] data bus 32 i/o ts 8 ma 177-182, 185-192, 194-207, 2-5 carries 32, 16, or 8 bit data quantities depending on bus width configuration.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 89 version 0.93 table 5-5. c bus mode interface pin description (continued) c mode bus symbol signal name total pins pin type pin number function lbe[3:0]# byte enables 4 i/o ts 12 ma 139-142 encoded, based on configured bus width, as follows: 32 -bit bus : for a 32 -bit bus, the four byte enables indicate which of the four bytes are active during a data cycle: be3# byte enable 3?ld[31:24] be2# byte enable 2?ld[23:16] be1# byt e enable 1?ld[15:8] be0# byte enable 0?ld[7:0] 16 -bit bus: for a 16 -bit bus, be3#, be1# and be0# are encoded to provide bhe#, a1 and ble#, respectively: be3# byte high enable (bhe#)?ld[15:8] be2# not used be1# address bit 1 (a1) be0# byte low enable (ble#)?ld[7:0] 8 -bit bus: for an 8 -bit bus, be1# and be0# are encoded to provide a1and a0, respectively: be3# not used be2# not used be1# address bit 1 (a1) be0# address bit 0 (a0) lclk local processor clock 1 i 160 local clock input lhold hold request 1 o tp 8 ma 158 asserted to request use of the local bus. the local bus arbiter asserts lholda when control is granted. lholda hold acknowledge 1 i 159 asserted by the local bus arbiter when control is granted in response to lhold. the bus should not be granted to the pci 9080 unless requested by lhold. lreseto# local bus reset out 1 o tp 8 ma 11 asserted when the pci 9080 chip is reset. used to drive the reset# input of the local processor. readyi# ready in 1 i 147 when the pci 9080 is a bus master, indicates that read data on the bus is valid or that a write data transfer is complete. used in conjunction with the pci 9080 programmable wait state generator. readyo# ready out 1 o dts 8 ma 148 when a local bus access is made to the pci 9080, indicates read data on the bus is valid or a write data transfer is complete. readyo# can be connected to readyi#. eot0# end of transfer for dma ch 0 1 i 163 terminates the current dma ch 0 transfer. eot1# end of transfer for dma ch 1 1 i 164 terminates the current dma ch 1 transfer.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 90 version 0.93 5. 4 j bus mode pinout table 5 - 6 . j bus mode interface pin description j bus mode symbol signal name total pins pin type pin number function ale address latch enable 1 o ts 8 ma 161 asserted during the address phase and negated before the data phase. ads# address strobe 1 i/o ts 12 ma 154 indicates the valid address and the start of a new bus access. asserted for the first clock of a bus access. blast# burst last 1 i/o ts 8 ma 155 signal driven by the current local bus master to indicate the last transfer in a bus access. bterm# burst terminate 1 i 146 for processors that burst up to 4 lwords. if bterm# is disabled through the pci 9080 configuration registers, the pci 9080 also bursts up to 4 lwords. if enabled, the pci 9080 continues to burst until a bterm# input is asserted. bterm# is a ready input that breaks up a burst cycle and causes another address cycle to occur. used in conjunction with the pci 9080 programmable wait state generator. den# data enable 1 i/o ts 12 ma 145 as an input, den# must only be asserted during data phases. for processor systems in which ads# is not asserted during the data phase, den# can be pulled high. as an output, dt/r# is used in conjunction with den# to provide control for data transceivers attached to the local bus. dt/r# data transmit/receive 1 o ts 12 ma 138 used in conjunction with den# to provide control for data transceivers attached to the local bus. when asserted the signal indicates the pci 9080 receives data. lw/r# write/read 1 i/o ts 12 ma 137 asserted low for reads and high for writes. labs[3:2] address bus burst 2 i/o ts 8 ma 162,163 carries the word address of the 32 bit memory address. these bits are incremented during a burst access. lad[31:0] address/data bus 32 i/o ts 8 ma 136, 135, 133-125, 122-115, 113-106, 103-99 during the address phase, the bus carries the upper 30 bits of the physical address bus. during the data phase, the bus carries 32 bits of data.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 91 version 0.93 table 5-6. j bus mode interface pin description (continued) j mode bus symbol signal name total pins pin type pin number function lbe[3:0]# byte enables 4 i/o ts 12 ma 139-142 the byte enables are encoded based on configured bus width as follows: 32-bit bus: for a 32 -bit bus, the four byte enables indicate which of the four bytes are active during a data cycle: be3# byte enable 3?lad[31:24] be2# byte enable 2?lad[23:16] be1# byte enable 1?lad[15:8] be0# byte enable 0?lad[7:0] 16-bit bus: for a 16 -bit bus, be3#, be1# and be0# are encoded to provide bhe#, a1 and ble#, respectively: be3# byte high enable (bhe#)?lad[15:8] be2# not used be1# address bit 1 (a1) be0# byte low enable (ble#)?lad[7:0] 8-bit bus: for an 8 -bit bus, be1# and be0# are encoded to provide a1and a0, respectively: be3# not used be2# not used be1# address bit 1 (a1) be0# address bit 0 (a0) lclk system clock 1 i 160 local clock input. lhold hold request 1 o tp 8 ma 158 asserted to request use of the local bus. the local bus arbiter asserts lholda when control is granted. lholda hold acknowledge 1 i 159 asserted by the local bus arbiter when control is granted in response to lhold. the bus should not be granted to the pci 9080 unless requested by lhold. llock# bus lock 1 i 153 indicates an atomic operation that may require multiple transactions to complete. used by the pci 9080 for direct local access to the pci bus. lreseto# local bus reset out 1 o tp 8 ma 11 asserted when the pci 9080 chip is reset. readyi# ready in 1 i 147 when the pci 9080 is a bus master, readyi# is used to indicate read data on the bus is valid or a write data transfer is complete. readyi# is used in conjunction with the pci 9080 programmable wait state generator. readyo# ready out 1 o dts 8 ma 148 when a local bus access is made to the pci 9080, indicates that read data on the bus is valid or that a write data transfer is complete. readyo# can be connected to readyi#. eot0# end of transfer for dma ch 0 1 i 4 terminates the current dma ch 0 transfer. eot1# end of transfer for dma ch 1 1 i 5 terminates the current dma ch 1 transfer.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 92 version 0.93 5. 5 s bus mode pinout table 5 - 7 . s bus mode interface pin description s bus mode symbol signal name total pins pin type pin number function ale address latch enable 1 o ts 8 ma 161 asserted during the address phase and negated before the data phase. as# address strobe 1 i/o ts 12 ma 154 indicates valid address and the start of a new bus access. asserted for the first clock of a bus access. blast# burst last 1 i/o ts 8 ma 155 signal driven by the current local bus master to indicate the last transfer in a bus access. bterm# burst terminate 1 i 146 for processor that burst up to 8 words and do not use a bterm# input. if bterm# is disabled through the pci 9080 configuration registers, the pci 9080 also bursts up to 8 words. if enabled, the pci 9080 continues to burst until a bterm# input is asserted. bterm# breaks up a burst cycle and causes another address cycle to occur. used in conjunction with the pci 9080 programmable wait state generator. den# data enable 1 o ts 12 ma 145 used in conjunction with dt/r# to provide control for data transceivers attached to the local bus. dt/r# data transmit/receive 1 o ts 12 ma 138 used in conjunction with den# to provide control for data transceivers attached to the local bus. when asserted, the signal indicates the pci 9080 is receiving data. la[31:16] address bus 16 i/o ts 8 ma 136, 135, 133-125, 122-118 carries the upper 16 bits of the address. labs[3:1] address bus burst 3 i/o ts 8 ma 162-164 carries the word address of the 32 bit memory address. these bits are incremented during a burst access. lad[15:1],d0 address/data bus 16 i/o ts 8 ma 117-115, 113-106, 103-99 during the address phase, carries the lower physical address bits. during the data phase, carries 16 bits of data. lbe[1:0]# byte enables 2 i/o ts 12 ma 141,142 indicate which of the two bytes are active during a data cycle. lclk local clock 1 i 160 local clock input. note: for i960 a s processor systems, clk2 input. the i960 a s processor?s reset# input must be connected to the pci 9080 lreseto# output. this enables the pci 9080 to determine the phase of the 2x clock processor. lhold hold request 1 o tp 8 ma 158 asserted to request use of the local bus. the local bus arbiter asserts lholda when control is granted. lholda hold acknowledge 1 i 159 asserted by the local bus arbiter when control is granted in response to lhold. the bus should not be granted to the pci 9080 unless requested by lhold.
section 5 pci 9080 p in description ? ? plx technology, inc., 1997 page 93 version 0.93 table 5-7. s bus mode interface pin description (continued) s bus mode symbol signal name total pins pin type pin number function llock# bus lock 1 i 153 indicates an atomic operation that may require multiple transactions to complete. used by the pci 9080 for direct local access to the pci bus. lreseto# local bus reset out 1 o tp 8 ma 11 asserted when the pci 9080 chip is reset. note: for i960 a s processors, this output must be used to drive the reset input of the i960 a s processor. this enables the pci 9080 to determine the phase of the 2x clock processor . lw/r# write/read 1 i/o ts 12 ma 137 asserted low for reads and high for writes. readyi# ready in 1 i 147 when the pci 9080 is a bus master, readyi# is used to indicate read data on the bus is valid or a write data transfer is complete. readyi# is used in conjunction with the pci 9080 programmable wait state generator. readyo# ready out 1 o dts 8 ma 148 when a local bus access is made to the pci 9080, indicates that read data on the bus is valid or that a write data transfer is complete. readyo# can be connected to readyi#. eot0# end of transfer for dma ch 0 1 i 4 terminates the current dma ch 0 transfer. eot1# end of transfer for dma ch 1 1 i 5 terminates the current dma ch 1 transfer.
section 6 pci 9080 electrical specifications ? ? plx technology, inc., 1997 page 94 version 0.93 6. electrical specifications table 6 - 1 . absolute maximum ratings specification maximum rating storage temperature -65 c to +150 c ambient temperature with power applied -55 c to +125 c supply voltage to ground -0.5 v to +7.0 v input voltage (vin) vss - 0.5 v vdd + 0.5 v output voltage (vout) vss - 0.5 v vdd + 0.5 v table 6 - 2 . operating ranges ambient temperature supply voltage (vdd) input voltage (vin) 0 c to +70 c 5 v 5% min = vss max = vdd table 6 - 3 . operating ranges parameter test conditions pin type typical value units cin vin = 2.0 v f = 1 mhz input 5 pf cout vout = 2.0 v f = 1 mhz output 10 pf table 6 - 4 . electrical characteristics estimated over operating range parameter description test conditions min max units voh output high voltage vdd = min ioh = -4.0 ma 2.4 v vol output low voltage vin = vih or vil iol per tables 0.4 v vih input high level 2.0 v vil input low level 0.8 v voh3 pci 3.3v output high voltage vdd = min ioh = -4.0 ma v vol3 pci 3.3v output low voltage vin = vih or vil iol per tables v vih3 pci 3.3v input high level v vil3 pci 3.3v input low level v ili input leakage current vss vin vdd vdd = max -10 +10 m a ioz tri-state output leakage current vdd = max vss vin vdd -10 +10 m a icc power supply current vdd=5.25 v, pclk=lclk=33 mhz 130 ma valid t s e t u p t h o l d inputs local clock figure 6 - 1 . pci 9080 local input setup and hold waveform
section 6 pci 9080 electrical specifications ? ? plx technology, inc., 1997 page 95 version 0.93 table 6 - 5 . ac electrical characteristics (local outputs) estimated over operating range signals (synchronous inputs) c l = 50 pf, vcc = 5.0 5% t setup (nsec) t hold (nsec) (worst case) lholda 7 2 ads# 7 2 blast# 7 2 ld[31:0] 7 2 la[31:0] 7 - dp[3:0] 7 2 bterm# 7 2 dreq[1:0]# 7 2 readyi# 7 2 input clocks min max local clock input frequency 0 40 mhz pci clock input frequency 0 33 mhz valid t v a l i d t v a l i d outputs local clock (min) (max) figure 6 - 2 . pci 9080 local output delay
section 6 pci 9080 electrical specifications ? ? plx technology, inc., 1997 page 96 version 0.93 table 6 - 6 . ac electrical characteristics (local outputs) estimated over operating range signals (synchronous outputs) c l = 50 pf, vcc = 5.0 5% t valid (min) nsec (hold) t valid (max) nsec (worst case) lhold 4.5 14 ldshold 5 16 ads# 4.7 14.5 blast# 5.1 15 lbe[3:0]# 4.7 16 lw/r# 4.6 14.5 ld[31:0] 5.5 20 la[31:0] 5.4 15 dt/r# 4.7 14.6 den# 4.7 14.4 readyo# 4.7 13.5 dp[3:0] 5.4 15.3 lreseto# 5 17 lad[31:0] (j and s modes) 9 20 labs[3:1] (j and s modes) 8 20 btermo# 8 19 breqo 5 21 linto 5 16 lserr# 9 16 pchk# 6 20 usero 7.3 23.3 waito 5 14.4 dack[1:0]# 5 14.3 dmpaf# 5 17 ale (j and s modes) (address setup and hold relative to ale negative edge) 5 ?
section 7 pci 9080 package mechanical dimensions ? ? plx technology, inc., 1997 page 97 version 0.93 7. package mechanical dimensions 7. 1 package mechanical dimensions for 208 pqfp, q jc = 5 c/watt 0.2 0.1 31.2 0.4 156 105 52 157 53 1 208 index 31.2 0.4 28 0.1 28 0.1 0.5 0.1 0.15 0.05 dimensions in millimeters 0?12 0.6 0.2 3.8 max pin 1 104 figure 7 - 1 . package mechanical dimensions
section 7 pci 9080 package mechanical dimensions ? ? plx technology, inc., 1997 page 98 version 0.93 7. 2 typical pci bus master adapter ld[31:0] la[31:2] lbe[3:0]# ads# lw/r# dt/r# den# readyo# readyi# blast# bterm# eot0# eot1# lhold lholda ldshold lreseti# lreseto# lclk linti# lserr# linto# dp[3:0] pchk# dreq[1:0]# dack[1:0]# waiti# bigend# llocko# bpclko breq dmpaf# waito# usero useri pcivol mode[1:0] s[2:0] admode nb# llock# breqo btermo# eecs eedi eedo eesk short# eesel lad[31:0] labs[3:2] lbe[3:0]# ads# lw/r# dt/r# den# ale readyo# readyi# blast# bterm# eot0# eot1# lhold lholda ldshold lreseti# lreseto# lclk linti# lserr# linto# dp[3:0] pchk# dreq[1:0]# dack[1:0]# waiti# bigend# llocko# bpclko breq dmpaf# waito# usero useri pcivol mode[1:0] s[2:0] admode nb# llock# breqo btermo# eecs eedi eedo eesk short# eesel c mode j mode pci 9080 ad[31:0] c/be[3:0]# par frame# irdy# trdy# stop# idsel devsel# perr# serr# req# gnt# clk rst# inta# lock# pci bus interface i/o controller memory cpu waiti# bigend# llocko# bpclko breq dmpaf# waito# usero useri pcivol mode[1:0] s[2:0] admode nb# llock# breqo btermo# eecs eedi eedo eesk short# eesel lad[15:1],d0 la[31:16] labs[3:1] lbe[1:0]# as# lw/r# dt/r# den# ale readyo# readyi# blast# bterm# eot0# eot1# lhold lholda ldshold lreseti# lreseto# lclk linti# lserr# linto# dp[3:0] pchk# dreq[1:0]# dack[1:0]# s mode local bus serial eeprom pci bus figure 7 - 2 . typical pci bus master adapter
section 7 pci 9080 package mechanical dimensions ? ? plx technology, inc., 1997 page 99 version 0.93 7. 3 9080 pin out (s mode , j mode, and c mode ) refer to section 5, " pin description ," for a complete description of each pin used in s, j, and c modes. vddl(core) lhold lholda lclk ale labs3 labs2 labs1 ldshold vss vddl(core) bpclko breq pcivolt eedo eedi eesk short# eesel eecs nc nc nc nc nc nc vss vddh(local) nc nc nc nc nc nc nc nc vss nc nc nc nc nc nc nc nc nc nc nc nc nc nc vss vddl(core) lhold lholda lclk ale labs3 labs2 nc ldshold vss vddl(core) bpclko breq pcivolt eedo eedi eesk short# eesel eecs nc nc nc nc nc nc vss vddh(local) nc nc nc nc nc nc nc nc vss nc nc nc nc nc nc nc nc nc nc nc nc nc nc vss vddl(core) lhold lholda lclk nc nc eot0# eot1# ldshold vss vddl(core) bpclko breq pcivolt eedo eedi eesk short# eesel eecs ld31 ld30 ld29 ld28 ld27 ld26 vss vddh(lo cal) ld25 ld24 ld23 ld22 ld21 ld20 ld19 ld18 vss ld17 ld16 ld15 ld14 ld13 ld12 ld11 ld10 ld9 ld8 ld7 ld6 ld5 ld4 vss vddh(local) nc nc eot0# eot1# waiti# llocko# dmpaf# mode1 mode0 lreseto# dp3 dp2 dp1 dp0 pchk# s2 s1 s0 admode breqo vss lserr# dreq1# dack1# nb# usero btermo# dreq0# dack0# useri ad31 ad30 ad29 ad28 ad27 vss vddh(pci) ad26 ad25 ad24 ad23 ad22 ad21 vss ad20 ad19 bigend# test req# gnt# vss vddh(local) nc nc eot0# eot1# waiti# llocko# dmpaf# mode1 mode0 lreseto# dp3 dp2 dp1 dp0 pchk# s2 s1 s0 admode breqo vss lserr# dreq1# dack1# nb# usero btermo# dreq0# dack0# useri ad31 ad30 ad29 ad28 ad27 vss vddh(pci) ad26 ad25 ad24 ad23 ad22 ad21 vss ad20 ad19 bigend# test req# gnt# vss vddh(local) ld3 ld2 ld1 ld0 w aiti# llocko# dmpaf# mode1 mode0 lreseto# dp3 dp2 dp1 dp0 pchk# s2 s1 s0 admode breqo vss lserr# dreq1# dack1# nb# usero btermo# dreq0# dack0# useri ad31 ad30 ad29 ad28 ad27 vss vddh(pci) ad26 ad25 ad24 ad23 ad22 ad21 vss ad20 ad19 bigend# test req# gnt# vss vss la4 la3 la2 nc nc vss ad0 ad1 ad2 ad3 ad4 ad5 ad6 vss ad7 ad8 ad9 ad10 ad11 ad12 vddh(pci) vss ad13 ad14 ad15 ad16 ad17 ad18 vss par c/be0# c/be1# c/be2# c/be3# lock# vddl(core) vss serr# perr# devsel# idsel stop# irdy# vddh(pci) vss trdy# frame# rst# inta# clk vddl(core) vss lad4 lad3 lad2 lad1 lad0 vss ad0 ad1 ad2 ad3 ad4 ad5 ad6 vss ad7 ad8 ad9 ad10 ad11 ad12 vddh(pci) vss ad13 ad14 ad15 ad16 ad17 ad18 vss par c/be0# c/be1# c/be2# c/be3# lock# vddl(core) vss serr# perr# devsel# idsel stop# irdy# vddh(pci) vss trdy# frame# rst# inta# clk vddl(core) vss lad4 lad3 lad2 lad1 d0 vss ad0 ad1 ad2 ad3 ad4 ad5 a d6 vss ad7 ad8 ad9 ad10 ad11 ad12 vddh(pci) vss ad13 ad14 ad15 ad16 ad17 ad18 vss par c/be0# c/be1# c/be2# c/be3# lock# vddl(core) vss serr# perr# devsel# idsel stop# irdy# vddh(pci) vss trdy# frame# rst# inta# clk vddl(core) 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 vss blast# ads# llock# linto# linti# lreseti# waito# readyo# readyi# bterm# den# vddl(core) vss lbe0# lbe1# lbe2# lbe3# dt/r# lw/r# la31 la30 vss la29 la28 la27 la26 la25 la24 la23 la22 la21 vddh(local) vss la20 la19 la18 la17 la16 la15 la14 la13 vss la12 la11 la10 la9 la8 la7 la6 la5 vddl(core) vss blast# ads# llock# linto# linti# lreseti# waito# readyo# readyi# bterm# den# vddl(core) vss lbe0# lbe1# lbe2# lbe3# dt/r# lw/r# lad31 lad30 vss lad29 lad28 lad27 lad26 lad25 lad24 lad23 lad22 lad21 vddh(local) vss lad20 lad19 lad18 lad17 lad16 lad15 lad14 lad13 vss lad12 lad11 lad10 lad9 lad8 lad7 l ad6 lad5 vddl(core) vss blast# as# llock# linto# linti# lreseti# waito# readyo# readyi# bterm# den# vddl(core) vss lbe0# lbe1# nc nc dt/r# lw/r# la31 la30 vss la29 la28 la27 la26 la25 la24 la23 la22 la21 vddh(local) vss la20 la19 la18 la17 la16 lad15 lad14 lad13 vss lad12 lad11 lad10 lad9 lad8 lad7 lad6 lad5 vddl(core) 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 pci 9080 j c s 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 figure 7 - 3 . 9080 pin out (s mode, j mode, and c mode)
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 100 version 0.93 8. timing diagrams the pci 9080 operates in three modes, selected through mode pins, corresponding to three bus types?c, j, and s. timing diagrams are provided for the three operating modes. for some functions, a timing diagram may only be provided for one mode of operation. even though a different mode is used, the timing diagram can be used to determine functionality. 8. 1 list of timing diagrams timing diagram 8-1. initialization from serial eeprom timing diagram 8-2. pci 9080 local bus arbitration timing diagram 8-3. local linti# input asserting pci output inta# timing diagram 8-4. (c and j modes) pci rst# asserting l ocal output lreseto# timing diagram 8-5. (c mode) local bus write to pci 9080 configuration register timing diagram 8-6. (c mode) local bus read from pci 9080 configuration register timing diagram 8-7. (c mode) local bus direct master memory write cycles to pci bus timing diagram 8-8. (c mode) local bus direct master memory read from pci bus timing diagram 8-9. (c mode) local bus direct master locked read followed by write and release timing diagram 8-10. (c mode) direct slave pci to local burst read of 5 timing diagram 8-11. (c mode) breqo and deadlock timing diagram 8-12. (c mode) direct slave pci to local burst write timing diagram 8-13. (c mode) pci 9080 dma or direct slave burs t write, bterm enabled timing diagram 8-14. (c mode) pci 9080 dma or direct slave burst write, bterm disabled timing diagram 8-15. (c mode) direct slave or dma burst read from local bus (1 wait state) timing diagram 8-16. (c mode) burst read from local bus (1 wait state programmed) timing diagram 8-17. (c mode) dma or direct slave 2 lword burst write to 8 bit lo cal bus timing diagram 8-18. (c mode) pci 9080 read of dma chaining parameters from local bus timing diagram 8-19. (c mode) single cycle dma demand mode pci to local timing diagram 8-20. (c mode) multiple cycle dma demand mode pci to local timing diagram 8-21. (j mode) local bus write to pci 9080 configuration register timing diagram 8-22. (j mode) local bus read from pci 9080 configuration register timing diagram 8-23. (j mode) local bus direct master locked read followed by write and release timing diagram 8-24. (j mode) dma or direct slave burst write, bterm enabled timing diagram 8-25. (j mode) dma or direct slave burst write, bterm disabled timing diagram 8-26. (j mode) dma or direct slave burst read, bterm enabled timing diagram 8-27. (j mode) dma burst write to 32 bit local bus suspended by breq input timing diagram 8-28. (j mode) read of dma chaining parameters from local bus timing diagram 8-29. (s mode) two phase clock synchronization using lreseto# timing diagram 8-30. (s mode) local bus write to configuration register
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 101 version 0.93 timing diagram 8-31. (s mode) local bus read from configuration register timing diagram 8 - 32 . (s mode) direct slave or dma burst write to local bus 1 1 0 0 0 0 0 0 d15 d14 d13 d12 d1 1 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0 0 0 0 d15 d14 d13 d12 d1 1 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0 d15 bits 31-16 cfg register 0 hex bits 15-0 cfg register 0 hex d14 d13 d12 d1 1 d10 d9 d8 d7 d6 d5 d4 d3 bits 31-16 of cfg register 8 hex continues d15 d14 d13 d12 d1 1 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0 short: bits 15-0 mailbox 1 loc c4 hex long: bits 15-0 loc register 2c start bit 0 indicates eeprom present ----| internally pulled up last word eesk, eedo,eecs from cfg registers after completion of read 0us 5us 10us 15u s 20us 25us eesk lreseto# eecs eedi eedo . eesk eedo . . . eesk eecs eedo timing diagram 8 - 1 . initialization from serial eeprom high if direct slave request must remain high until lhold goes low will not be reasserted unitl lholda goes low pci9060 drives bus |--- can go high 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk lhold ldshold lholda local bus pci 9080 always gives up bus between different local bus accesses: different direct slave access, different dma access, between direct slave/dma accesses timing diagram 8 - 2 . pci 9080 local bus arbitration
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 102 version 0.93 [3,15] [3,15] 0ns 25ns 50ns 75ns 100ns local linti# pci inta# timing diagram 8 - 3 . local linti# input asserting pci output inta# asynchronous 0ns 50ns 100ns 150ns 200ns pci rst# lclk lreseto# timing diagram 8 - 4 . (c and j modes) pci rst# asserting local output lreseto#
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 103 version 0.93 pchk0 pchk1 data 0 data 1 data 0 byte enables data 1 byte enables cs or a31-29 match s2-0 cs or a31-29 match s2-0 burst access single access data addr 0ns 50ns 100ns 150ns 200ns 250ns 300ns 350ns 400ns 450ns 500ns lclk la[31..0] ld[31..0] cs# ads# lbe[3..0]# lw/r# blast# readyo# pchk# n ote: first readyo# is delayed for access to shared registers. timing diagram 8 - 5 . (c mode) local bu s write to pci 9080 configuration register dp0 dp1 data 0 data 1 cs or a31-29 match s2-0 0ns 50ns 100ns 150ns 200ns 250ns lclk la[31..0] ld[31..0] cs# ads# lbe[3..0]# lw/r# blast# dp[3..0] readyo# note: first readyo# is delayed for access to shared registers. timing diagram 8 - 6 . (c mode) local bus read from pci 9080 configuration register
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 104 version 0.93 a <--- local address matches local direct master base address cmd d0 be d1 be d2 be d3 be r-a d0 d1 d2 d3 d1 d0 d2 d3 a1 d4 d4 be3-0 r-a1 d4 cmd d4 be re-mapped a --> d0 be3-0 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk la[31:2] ld[31:0] lbe[3:0]# lw/r# ads# blast# readyo# pchk# pci_clk-33 req# gnt# frame# ad[31:0] c/be[3:0]# devsel# irdy# trdy# note: the pci 9080 does not accept local bus bursts of lengths longer than 4 lwords. timing diagram 8 - 7 . (c mode) local bus direct master memory write cycles to pci bus
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 105 version 0.93 a0 d0 d1 d2 d3 d0 d1 d2 d3 a cmd 0 0 0 0 0ns 100ns 200ns 300ns 400ns 500ns lclk a[31:2] lw/r# ads# blast# readyo# ld[31:0] pci_clk-33 req# gnt# frame# ad[31:0] c/be[3:0]# devsel# irdy# trdy# (pci preread 4 mode) note: unused read data is flushed when more read data is prefetched than used. timing diagram 8 - 8 . (c mode) local bus direct master memory read from pci bus
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 106 version 0.93 d0 d1 d2 d3 d0 ra cmd 0 0 0 0 wa r-ra wd unlock --> <-- lock keep lock --> r-wa wd cmd 0ns 250ns 500ns 750ns lclk a[31:2] lw/r# llock# ads# blast# readyo# ld[31:0] pci_clk-33 req# gnt# frame# ad[31:0] c/be[3:0]# devsel# irdy# trdy# lock# (1 lword burst read, pci preread 4 mode) timing diagram 8 - 9 . (c mode) local bus direct master locked read followed by write and release
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 107 version 0.93 addr cmd byte enables d 0 addr d 0 d 1 d 2 d 3 d 1 d 2 d 3 d 4 d 4 +4 +8 +12 +16 +20 d 5 d 6 d 7 +24 +28 0ns 100ns 200ns 300ns 400ns 500ns 600ns 700ns 800ns pci clk frame# ad[31:0] c/be# irdy# devsel# trdy# lclk lhold lholda ads# blast# la[31:2] ld[31:0] readyi# unused read data is flushed (no wait states, 32 -bit bus, burst enabled) timing diagram 8 - 10 . (c mode) direct slave pci to local burst read of 5
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 108 version 0.93 bus signals for backoff (pci9060 c_dsrb.td) (03/06/95) addr cmd byte enables addr d0 d0 d1 d2 direct slave proceeds direct master read direct slave read direct master will not gain pci bus until direct slave access completes (gnt# asserted , frame# deasserted, irdy# deasserted) <-- direct slave- breq timer starts no direct master ready d3 d1 d2 0ns 250ns 500ns 750ns title pci clk frame# ad[31:0] c/be# irdy# devsel# trdy# req# lclk lhold lholda ads# la[31:2] ld[31:0] readyo# readyi# breqo breqo timer expires and asserts breqo --->| external logic backs off direct master transfer to indicate potential deadlock condition and asserts lholda to grant the local bus for a direct slave transfer. lholda causes the pci 9080 local logic to abort the local side of the direct master read note: for partial deadlock, pci retry timer bits [31:28] of the local bus region descriptor at completion of the direct slave transfer, lhold register can be used to issue retrys to the is de-asserted which enables external backoff logic pci master attempting the direct slave access. to restart the direct master transfer. if the previous pci read access has already started, the read refer to section 3 , ? functional description ,? data is flushed and a new pci direct master read for a description of deadlock cycle is started. timing diagram 8 - 11 . (c mode) breqo and deadlock
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 109 version 0.93 +4 data0 data1 addr +8 addr cmd data0 data1 d0 be d1 be 0ns 50ns 100ns 150ns 200ns 250ns 300ns 350ns 400ns 450ns 500ns pci clk frame# ad[31::0] c/be[3:0]# irdy# devsel# trdy# lclk lhold lholda ads# blast# lw/r# la[31:2] ld[31:0] dt/r# den# readyi# (no wait states, 32 -bit bus, burst enabled) timing diagram 8 - 12 . (c mode) direct slave pci to local burst write
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 110 version 0.93 0000, does not chg, unaligned has own cycle with ads <--- pci9060 drives bus d0 d1 d10 d2 d3 d4 d8 d9 pci9060 floats bus --> a+32 a a+4 a+8 a+12 a+16 a+36 a+40 d5 d6 d7 a+20 a+24 a+28 bterm# forces new ads# --> 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk lhold lholda ads# blast# lbe[3..0]# lw/r# ld[31..0] la[31:2] dt/r# den# bterm# readyi# note: bterm# is a ready input that also causes a new ads# cycle. note: not all byte enables asserted will cause a new ads# cycle. (no wait states, 32 -bit bus, burst enabled, bterm enabled) timing diagram 8 - 13 . (c mode) pci 9080 dma or direct slave burst write, bterm enabled
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 111 version 0.93 0000, does not chg, unaligned has own cycle with ads <--- pci9060 drives bus d1 d2 d8 d3 d4 d5 d6 d7 pci9060 floats bus --> a+24 a+4 a+8 a+12 a+16 a+20 a+28 a+32 xxx1 d0 a a[3:2]=11 a[3:2]=00 01 10 a[3:2]=11 a[3:2]=00 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk lhold lholda ads# blast# lbe[3..0]# lw/r# ld[31..0] la[31:2] dt/r# den# bterm# readyi# note: not all byte enables asserted or a quad boundary la[3:2]=11 results in a new ads#. (no wait states, 32 -bit bus, burst enabled, bterm disabled) timing diagram 8 - 14 . (c mode) pci 9080 dma or direct slave burst write, bterm disabled
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 112 version 0.93 0000 <--- pci9060 drives bus d0 d1 d3 pci9060 floats bus -- > a a+4 a+8 a+12 d2 a+16 high for direct slave access 0ns 50ns 100ns 150ns 200ns 250ns 300ns 350ns 400ns 450ns 500ns lclk lhold ldshold lholda ads# blast# lbe[3:0]# lw/r# ld[31:0] la[31:2] dt/r# den# bterm# readyi# (32 bit local bus, burst enabled, bterm disabled) timing diagram 8 - 15 . (c mode) direct slave or dma burst read from local bus (1 wait state)
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 113 version 0.93 0000 <--- pci9060 drives bus d0 d1 d3 pci9060 floats bus --> a a+4 a+8 a+12 d2 a+16 high for direct slave access 0ns 50ns 100n 150n 200ns 250ns 300ns 350ns 400ns 450ns 500ns lclk lhold ldshold lholda ads# blast# lbe[3..0]# lw/r# ld[31..0 la[31:2] dt/r# den# bterm# waito# if ready input is enabled in bus region register, additional wait states can be asserted externally (32 bit local bus, burst enabled, bterm disabled) timing diagram 8 - 16 . (c mode) burst read from local bus (1 wait state programmed)
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 114 version 0.93 a a + 4 01 10 1 1 be=a1,0=00 00 01 10 1 1 0-7 8-15 16-23 24-31 0-7 8-15 16-23 24-31 0ns 50ns 100n s 150n s 200ns 250ns 300ns 350ns 400ns 450ns 500ns lclk lhold lholda ads# blast# la[31:0] lbe[3.:0]=a[1:0] ld[7:0] readyi# (no wait states, 8 -bit bus, burst enabled) timing diagram 8 - 17 . (c mode) dma or direct slave 2 lword burst write to 8 bit local bus all zero d0 d1 d2 d3 <--- pci9060 drives bus a a+4 a+8 a+12 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk lhold lholda ads# blast# lbe[3:0]# lw/r# la[31:2] ld[31:0] dt/r# den# readyi# (no wait states, 32 -bit bus) first address a are bits [31:4] of the next descriptors pointer register d0: pci start address, d1: local start address, d2: transfer count (bytes), d3: next descriptor pointer timing diagram 8 - 18 . (c mode) pci 9080 read of dma chaining parameters from local bus
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 115 version 0.93 d0 a dreq# must be deasserted to prevent burst --> 0ns 50ns 100ns 150ns 200ns 250ns 300ns lclk lhold lholda ads# blast# lbe[3..0]# lw/r# ld[31..0 la[31:2] dreq# dack# readyi# (no wait states, 32 bit local bus) timing diagram 8 - 19 . (c mode) single cycle dma demand mode pci to local d0 a current data + last data transferred after dreq# is deasserted a+4 d1 0ns 50ns 100ns 150ns 200ns 250ns 300ns lclk lhold lholda ads# blast# lbe[3..0]# lw/r# ld[31..0] la[31:2] dreq# dack# readyi# (no wait states, burst enabled, bterm enabled, 32 bit local bus) timing diagram 8 - 20 . (c mode) multiple cycle dma demand mode pci to local
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 116 version 0.93 addr pchk0 pchk1 data 0 data 1 for data 0 for data 1 cs or a31-29 match s2-0 addr data cs or a31-29 match s2-0 burst access single access 0ns 50ns 100ns 150ns 200ns 250ns 300ns 350ns 400ns 450ns 500ns lclk lad[31..0] cs# ads# lbe[3..0]# lw/r# den# blast# readyo# pchk# note: if not used, den# can be pulled high. note: first readyo# is delayed for access to shared registers . timing diagram 8 - 21 . (j mode) local bus write to pci 90 80 configuration register addr dp0 dp1 data 0 data 1 cs or a31-29 match s2-0 0ns 50ns 100ns 150ns 200ns 250ns lclk lad[31..0] cs# ads# lbe[3..0]# lw/r# den# blast# dp[3..0] readyo# note: if not used, den# can be pulled high. note: first readyo# is delayed for access to shared registers. timing diagram 8 - 22 . (j mode) local bus read from pci 9080 configuration register
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 117 version 0.93 d0 d1 d2 d3 ra cmd 0 0 0 0 wa r-ra unlock --> <-- lock keep lock --> r-wa wd cmd d0 wd 0ns 250ns 500ns 750ns lclk lad[31:0] lw/r# llock# ads# den# blast# readyo# pci_clk-33 req# gnt# frame# ad[31:0] c/be[3:0]# devsel# irdy# trdy# lock# (1 lword burst read, pci preread 4 mode) timing diagram 8 - 23 . (j mode) local bus direct master locked read followed by write and release
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 118 version 0.93 a does not chg, unaligned has own cycle with ads <--- pci9060 drives bus d0 d1 d7 d2 d3 d4 a+20 d5 d6 pci9060 floats bus --> lad[3:2] lad[3:2] 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk lhold lholda ads# ale blast# lbe[3..0]# lw/r# lad[31..0] lba[3:2] dt/r# den# bterm# readyi# note: bterm# is a ready input that also causes a new ads# cycle. (no wait states, 32 -bit bus, burst enabled) timing diagram 8 - 24 . (j mode) dma or direct slave burst write, bterm enabled
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 119 version 0.93 does not chg, unaligned has own cycle with ads <--- pci9060 drives bus pci9060 floats bus --> 01 10 11 00 00 01 10 d7 11 a d0 d1 d2 d3 a+16 d4 d5 d6 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk lhold lholda ads# ale blast# lbe[3..0]# lw/r# lad[31..0] lba[3:2] dt/r# den# bterm# readyi# note: when bterm is disabled, a new ads (address) cycle starts every quad word boundary. (no wait states, 32 -bit bus, burst enabled) timing diagram 8 - 25 . (j mode) dma or direct slave burst write, bterm disabled
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 120 version 0.93 a does not chg, unaligned has own cycle with ads <--- pci9060 drives bus d0 d1 d7 d2 d3 d4 a+20 d5 d6 pci9060 floats bus --> 00 01 10 11 00 10 11 01 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk lhold lholda ads# ale blast# lbe[3..0]# lw/r# lad[31..0] lba[3:2] dt/r# den# bterm# readyi# (no wait states, 32 -bit bus, burst enabled, b term enabled) timing diagram 8 - 26 . (j mode) dma or direct slave burst read, bterm enabled
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 121 version 0.93 a does not chg, unaligned has own cycle with ads <--- pci9060 drives bus d0 d1 d9 d2 d3 d4 d6 d7 d8 pci9060 floats bus -- > lad[3:2 ] d5 a+40 d10 owned by i960j or another bus master dma continues where it left off 0ns 100ns 200ns 300ns 400ns 500ns 600ns 700ns lclk lhold lholda ads# ale blast# lbe[3..0]# lw/r# lad[31..0] lba[3:2] dt/r# den# bterm# readyi# breq (no wait states, 32 -bit bus, burst enabled, bterm enabled) timing diagram 8 - 27 . (j mode) dma burst write to 32 bit local bus suspended by breq input
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 122 version 0.93 a all zero a+4 a+8 a+12 d0 d1 d2 d3 <--- pci9060 drives bus 0ns 100ns 200ns 300ns 400ns 500ns 600ns lclk lhold lholda ads# ale blast# lbe[3..0]# lw/r# lad[31..0] dt/r# den# readyi# (no wait states, 32 -bit bus) first address a are bits [31:4] of the next descriptors pointer register d0: pci start address, d1: local start address, d2: transfer count (bytes), d3: next descriptor pointer timing diagram 8 - 28 . (j mode) read of dma chaining parameters from local bus addr first a addr data b c d clk lreseto# as# la[31:16] lad[15:1],d0 note: lreseto# must be used to establish phase a relationship as shown. timing diagram 8 - 29 . (s mode) two phase clock synchronization using lreseto#
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 123 version 0.93 addr pchk0 pchk1 data 0 data 1 byte enables for data word 0 byte enables for data word 1 cs or a31-29 match s2-0 a addr addr start word addr next word addr b c d clk la[31:16] lad[15,1],d0 labs{3:2] labs[1] cs# as# lbe[1..0]# lw/r# blast# readyo# pchk# timing diagram 8 - 30 . (s mode ) local bus write to configuration register addr dp0 dp1 data 0 data 1 cs or a31-29 match s2-0 a b c d addr start word addr next word addr lclk la[31:16] lad[15:1],d0 labs[1] cs# ads# lbe[1..0]# lw/r# blast# dp[3..0] readyo# timing diagram 8 - 31 . (s mode) local bus read from configuration register
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 124 version 0.93 a a + 8 0-15 16-31 0-15 16-31 0-15 16-31 0-15 16-31 a a+4 a+12 a a+2 a+4 a+6 a+8 a+10 a+12 a+14 a lclk lhold lholda as# blast# la[31:16] lbe[1:0]# labs[3:1] lad[16:1],d0 bterm# readyi# timing diagram 8 - 32 . (s mode) direct slave or dma burst write to local bus
section 8 pci 9080 timing diagrams ? ? plx technology, inc., 19 97 page 125 version


▲Up To Search▲   

 
Price & Availability of PLI9080

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X